Mam prosty formularz:multipart/form-data z tablicami
<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>
Z Kontroler:
//...
server.post('/test', function(req, res) {
res.json(req.body);
});
//...
ta zwraca w porządku:
{
arr: [
"val1",
"val2",
"val3"
]
}
Jednak, kiedy zmień typ encji na wieloczęściowy/formularz danych
<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>
Serwer odpowiada teraz z:
{
arr[]: "val3"
}
Na czym polega problem? Czy potrzebuję jakiejś konfiguracji?
Jeśli masz wątpliwości, wysyłam plik, dlatego potrzebuję multipart/form-data
.
wygląda bardziej jak multiparty nie obsługuje tej sytuacji poprawnie. Byłby zainteresowany, aby zobaczyć, co wychodzi. Jeśli nie znajdziesz rozwiązania, spróbuj zgłosić to pod adresem: https://github.com/andrewrk/node-multiparty/issues –
Czy dowiedziałeś się, co było nie tak? Mam ten sam problem tutaj –
Składnia tablicowa jest niestandardowym rozszerzeniem do składni form. Twój organizm analizuje dane zakodowane w url, rozpoznaje je, ale analizator treści dla danych wieloczęściowych nie. Nie dostarczyłeś [mcve], więc nie wiemy, jakich parserów ciała używasz, więc nie możemy stwierdzić, czy tak jest, ponieważ nie ma wsparcia lub jeśli wsparcie musi być włączone. – Quentin