2017-03-05 5 views
2

idquantityを整数として送信する必要があります。私はそれを整数として定義しますが、何らかの理由でそれを投稿しようとすると、idが文字列として投稿されます。ポストに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それはapplication/x-www-form-urlencodedフォーマットを使用し、JSONを送信しません。この形式はデータ型を区別せず、すべてが文字列として送信されます。パラメータが整数であると想定されている場合は、それをサーバコードで変換する必要があります。

また、JSONでは、オブジェクトキーは常に文字列です。

したい構造を得るために、それは次のようになります。

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

{updates}{updates: updates}ためES6の省略形ですので、あなたは、ネスティングの余分なレベルを追加しているので、あなたは{updates: {updates: updates}}を送っています。