2017-11-25 6 views
0

Kann ich mehrstufiges Javascript-Objekt in FormData wie in JSON senden?JSON in FormData senden

Zum Beispiel:

{ 
    items: [ 
     {'title': 'first', 'amount': 20}, 
     {'title': 'second', 'amount': 3} 
    ] 
} 

Um es über Formdata zu senden Ich habe diese

const data = new FormData; 
for(let i = 0; i < obj.items.length; i++) { 
    data.append(`items[${i}][title]`, obj.items[i]['titlte']); 
    data.append(`items[${i}][title]`, obj.items[i]['titlte']); 
} 

tun, wenn ich einfach tun

data.append(`items[]`, obj.items); 

Dann Server sieht nur ‚[ Objekt]]

Ich kann JSON nicht posten, weil ich neben diesen Elementen auch einige Dateien sende.

Antwort

0

versuchen data.append('items[]', JSON.stringify(obj.items));

+0

Gibt es eine Möglichkeit zu senden, ohne Iteration über alle Felder mehrere Felder zu schicken? Wie data.append ('items1 []', JSON.stringify (data.items1)); data.append ('items2 []', JSON.stringify (data.items2)); – Vitaliy

+0

Die andere Option besteht darin, '.serialize()' in einem Formular aufzurufen. Weitere Informationen [hier] (https://api.jquery.com/serialize/) – ztadic91