Ho bisogno di inviare alcuni dati usando ajax e FormData, perché voglio inviare un file e alcuni altri parametri. Il modo in cui di solito inviare i dati è questa:Invio di FormData nidificati su AJAX
$.ajax({
type: 'POST',
url: 'some_url',
dataType: 'json',
processData:false,
contentType:false,
data:{
Lvl_1-1: 'something',
Lvl_1-2: 'something',
Lvl_1-3: {
Lvl_1-3-1: "something",
Lvl_1-3-2: "something",
Lvl_1-3-3: "something",
},
},
...
});
Se io non uso formdata(), non ho alcun problema, ma quando si utilizza formdata(), solo i dati sui lvl1 è ok, ma niente è annidato visualizzato come stringa come questo
<b>array</b> <i>(size=3)</i>
'Lvl1-1' <font color='#888a85'>=></font> <small>string</small>
<font color='#cc0000'>'Something'</font>
<i>(length=23)</i>
'Lvl1-2' <font color='#888a85'>=></font> <small>string</small>
<font color='#cc0000'>''Something''</font> <i>(length=3)</i>
'Lvl1-3' <font color='#888a85'>=></font> <small>string</small>
<font color='#cc0000'>'[object Object]'</font> <i>(length=17)</i>
Se uso formdata() per codificare i dati all'interno Lvl1-3, invece di [object Object]
ottengo [object FormData]
come faccio ad avere un allineamento invece di stringa su Lvl1-3 ?
NOTA: se il file è al livello superiore (Lvl_1), è possibile inviare il file senza problemi utilizzando FormData(). Non ho scritto il codice del file allegato perché non è questo il problema, i dati nidificati sono. Ho appena citato il file perché è per questo che sto usando FormData().
controllo https://github.com/foo123/serialiser.js per serializzare campi di moduli complessi/nidificati per formData, oggetto, json, dati codificati url (autore) –