2017-03-05 115 views
2

我需要發送idquantity作爲整數。我將其定義爲一個整數,但由於某種原因,當我嘗試發佈它時,它將id作爲字符串發佈。在post中格式化JSON

我在這裏錯過了一些簡單的東西,只是不知道什麼..我怎樣才能發送idquantity作爲一個整數?我的代碼如下:

var id = parseInt(identifier, 20); 
    var quantity = parseInt(amount, 10); 
    var updates = {}; 
    updates[id] = quantity; 
    $.post('/cart/update.js', {updates: {updates}}); 

的JSON在後應該是這樣的:

$.post('/cart/update.js', {updates: {40076307207: 1}}); 

感謝

+0

正如我所看到的更新是一個對象,但在它之後,您將它用作數組。 –

回答

3

$.post不發送JSON,它使用application/x-www-form-urlencoded格式。這種格式不區分數據類型,所有內容都以字符串形式發送。如果參數應該是一個整數,則需要將其轉換爲服務器代碼。

另外,在JSON中,對象鍵總是字符串。

爲了得到你想要的結構,應該是:

$.post('/cart/update.js', {updates: updates}); 

要添加嵌套一個額外的水平,因爲{updates}是ES6簡寫{updates: updates},所以你要發送{updates: {updates: updates}}