Ho una forma semplice:multipart/form-data con array
<form method="post" action="/test">
<input type="hidden" name="arr[]" value="val1">
<input type="hidden" name="arr[]" value="val2">
<input type="hidden" name="arr[]" value="val3">
<input type="submit" value="Submit">
</form>
Con il controllore:
//...
server.post('/test', function(req, res) {
res.json(req.body);
});
//...
Ciò restituisce bene con:
{
arr: [
"val1",
"val2",
"val3"
]
}
Tuttavia, quando cambia l'enctype in multipart/formdata
<form method="post" action="/test" enctype="multipart/form-data">
<input type="hidden" name="arr[]" value="val1">
<input type="hidden" name="arr[]" value="val2">
<input type="hidden" name="arr[]" value="val3">
<input type="submit" value="Submit">
</form>
Il server ora risponde con:
{
arr[]: "val3"
}
Qual è il problema? C'è qualche tipo di configurazione di cui ho bisogno?
Nel caso ve lo stiate chiedendo, sto anche inviando un file, ecco perché ho bisogno dello multipart/form-data
.
sembra più multiparty non gestisce questa situazione correttamente. Sarebbe interessato a vedere cosa viene fuori. Se non trovi alcuna soluzione, prova a segnalarla sotto: https://github.com/andrewrk/node-multiparty/issues –
Hai scoperto cosa c'era che non andava? Ho lo stesso problema qui –
La sintassi dell'array è un'estensione non standard per formare la sintassi. L'analisi del tuo corpo per i dati codificati nell'URL lo riconosce ma il parser del tuo corpo per i dati multipart non lo fa. Non hai fornito un [mcve] quindi non sappiamo quali parser corporei stai usando, quindi non possiamo dire se è perché non c'è supporto o se il supporto deve essere abilitato. – Quentin