我有一个通常提交到 Spring MVC 应用程序的 Web 应用程序。发布的表单数据看起来像这样:
formBean[0].id="100"
formBean[0].name="Bill"
formBean[1].id="101"
formBean[1].name="Steve"
出于测试/开发目的,我想将相同的表单提交到运行express(版本4)的节点服务器。连接bodyParser,配置如下:
app.use(bodyParser.urlencoded({ extended: true }));
无法正确解析表单数据。将 req.body 转储到控制台会导致:
{ formBean: [ '0', '1' ] }
当我更改表单字段名称时,我得到了预期的结果,以便提交的数据如下所示:
formBean[0][id]="100"
formBean[0][name]="Bill"
formBean[1][id]="101"
formBean[1][name]="Steve"
但是,不幸的是,这不适用于我们的 Spring MVC 应用程序。
有没有办法配置 connect.urlencoded 以正确解析我提交的表单数据?我应该看看有什么不同的中间件吗?
尝试
{扩展:假}
这强制在 Node 库中使用本机 queryString 模块
req.body 应该有 => {"id":["100","101"],"name":["Bill","Steve"]}
var bodyParser = require('body-parser');
var parseUrlencoded = bodyParser.urlencoded({extended: false}); //force the use of native queryString module in Node library
app.post(parseUrlencoded, function (request, response) {
console.log('request.body ' + JSON.stringify(request.body));
.....
});