Ich habe eine einfache Form:multipart/form-data mit Arrays
<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>
Mit dem Controller:
//...
server.post('/test', function(req, res) {
res.json(req.body);
});
//...
Das gibt fein mit:
{
arr: [
"val1",
"val2",
"val3"
]
}
Allerdings, wenn ich Ändern Sie den 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>
Der Server antwortet nun mit:
{
arr[]: "val3"
}
Was das Problem ist? Gibt es eine Art von Konfiguration, die ich brauche?
Falls Sie sich wundern, ich sende auch eine Datei, deshalb brauche ich die multipart/form-data
.
mehr Sieht aus wie Multiparty behandelt diese Situation nicht korrekt. Würde mich interessieren was zu sehen ist. Wenn Sie keine Lösung finden, versuchen Sie es unter: https://github.com/andrewrk/node-multiparty/issues –
Haben Sie herausgefunden, was los war? Ich habe das gleiche Problem hier –
Die Array-Syntax ist eine nicht-Standard-Erweiterung zur Formularsyntax. Ihr Body-Parse für URL-codierte Daten erkennt es, aber Ihr Body-Parser für Multipart-Daten nicht. Sie haben kein [mcve] bereitgestellt, so dass wir nicht wissen, welche Body-Parser Sie verwenden. Daher können wir nicht sagen, ob dies daran liegt, dass keine Unterstützung vorhanden ist oder die Unterstützung nur aktiviert werden muss. – Quentin