2017-03-05 5 views
2

Ich muss die id und quantity als eine ganze Zahl senden. Ich definiere es als Integer, aber aus irgendeinem Grund, wenn ich es versuche und poste, postet es die id als eine Zeichenfolge.JSON in Post formatieren

Ich vermisse etwas einfach hier, nur keine Ahnung was .. Wie kann ich sowohl id und quantity als eine ganze Zahl senden? Mein Code ist unten:

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

Dank

+0

Wie ich sehe, ist das Update ein Objekt, aber direkt danach verwenden Sie es als Array. –

Antwort

3

$.post hat JSON nicht senden, verwendet es application/x-www-form-urlencoded Format:

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

Die JSON in der Post wie folgt aussehen sollte. Dieses Format unterscheidet keine Datentypen, alles wird als String gesendet. Wenn ein Parameter eine Ganzzahl sein soll, müssen Sie ihn im Servercode konvertieren.

Auch in JSON sind Objektschlüssel immer Zeichenfolgen.

Um die Struktur, die Sie wollen zu bekommen, sollte es sein:

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

Du fügst eine zusätzliche Ebene der Verschachtelung, weil {updates} ist die Abkürzung für ES6 {updates: updates}, so Sie senden {updates: {updates: updates}}.