【发布时间】:2014-07-03 15:54:29
【问题描述】:
我有一个简单的表格:
<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>
使用控制器:
//...
server.post('/test', function(req, res) {
res.json(req.body);
});
//...
这会很好地返回:
{
arr: [
"val1",
"val2",
"val3"
]
}
但是,当我将 enctype 更改为 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>
服务器现在响应:
{
arr[]: "val3"
}
有什么问题?有什么我需要的配置吗?
如果您想知道,我还发送了一个文件,这就是我需要 multipart/form-data 的原因。
【问题讨论】:
-
看起来更像是多方无法正确处理这种情况。有兴趣看看结果如何。如果您没有找到解决方案,请尝试通过以下方式报告:github.com/andrewrk/node-multiparty/issues
-
您发现问题所在了吗?我这里也有同样的问题
-
数组语法是对表单语法的非标准扩展。您的 url 编码数据的正文解析器可以识别它,但您的多部分数据的正文解析器没有。您没有提供minimal reproducible example,所以我们不知道您使用的是什么正文解析器,所以我们无法判断是因为没有支持还是只需要启用支持。