我是javascript的新手,我正试图在trought post方法中发送一个带有其他对象的对象:
$.post('/posttest', {tableName : 'WSTest', data : {name : "Rachid", age : 42, ville : "Tokyo"}}).done(function(data) {
console.log("data posted : ", data);
});
我可以使用tableName
检索req.body.tableName
但req.body.data
给我未定义。当我得到console.log(req.body)
时:
{ tableName: 'WSTest',
'data[name]': 'Rachid',
'data[age]': '42',
'data[ville]': 'Tokyo' }
据我所知,javascript将数据作为dico?如何将数据作为对象?
答案 0 :(得分:1)
标准格式编码数据是 flat 数据结构。它只是键/值对。
PHP引入了非标准的语法扩展,允许您描述嵌套数据,但您的解析器似乎无法识别它。
要访问数据,您需要提及方括号。
req.body["data[name]"]
// etc
或者,找到一个将方括号识别为具有特殊含义的解析器。
假设您正在使用(相当常见的)" URL编码的表单正文解析器" body-parser
模块的功能,请参阅the docs:
扩展
扩展选项允许选择使用查询字符串库(假设时)或qs库(当为真时)解析URL编码数据。 "扩展"语法允许将富对象和数组编码为URL编码格式,从而允许使用URL编码的类似JSON的体验。有关详细信息,请参阅qs库。
所以:
app.use(bodyParser.urlencoded({ extended: true }));
......可能会做到这一点。