gpt4 book ai didi

Javascript:使用 trought post 方法内的对象发送对象

转载 作者:行者123 更新时间:2023-12-03 05:37:45 25 4
gpt4 key购买 nike

我对 javascript 很陌生,我正在尝试使用 trought post 方法内的另一个对象发送一个对象:

$.post('/posttest', {tableName : 'WSTest', data : {name : "Rachid", age : 42, ville : "Tokyo"}}).done(function(data) {
console.log("data posted : ", data);
});

我可以使用 req.body.tableName 检索 tableName,但 req.body.data 给我未定义的信息。当我 console.log(req.body) 我得到:

{ tableName: 'WSTest',
'data[name]': 'Rachid',
'data[age]': '42',
'data[ville]': 'Tokyo' }

据我了解,javascript 将数据视为 dico ?我如何将数据作为对象?

最佳答案

标准形式编码数据是一种平面数据结构。它只是键/值对。

PHP 引入了语法的非标准扩展,它允许您描述嵌套数据,但您的解析器似乎无法识别它。

要访问数据,您需要提及方括号。

req.body["data[name]"]
// etc

或者,找到一个能够将方括号识别为具有特殊含义的解析器。

假设您正在使用 body-parser 模块的(相当常见的)“URL 编码表单正文解析器”功能,请参阅 the docs :

extended

The extended option allows to choose between parsing the URL-encoded data with the querystring library (when false) or the qs library (when true). The "extended" syntax allows for rich objects and arrays to be encoded into the URL-encoded format, allowing for a JSON-like experience with URL-encoded. For more information, please see the qs library.

所以:

app.use(bodyParser.urlencoded({ extended: true }));

...可能会成功。

关于Javascript:使用 trought post 方法内的对象发送对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40658762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com