将嵌套对象传递给 POST 请求 [重复]
Posted
技术标签:
【中文标题】将嵌套对象传递给 POST 请求 [重复]【英文标题】:Pass a nested object to POST request [duplicate] 【发布时间】:2014-05-07 00:53:39 【问题描述】:如何通过 POST 请求发送嵌套对象?
var name = "test",
path = "?diffCurr%5B%5D=FALSE&diffProv%5B%5D=FALSE",
data =
datatype:"report",
"value":
"name":name,
"query":path
;
$.ajax(
type:"POST",
url: "resources/savedata.html",
data: data,
success: function(data)
...
,
complete: function()
...
)
当我签入 chrome 时,在“表单数据”下的网络选项卡中,我看到了这个:
datatype:report
value[name]:test
value[query]:?diffCurr%5B%5D=FALSE&diffProv%5B%5D=FALSE
基本上,我希望$_POST["value"]
包含一个带有name
和query
的对象。
【问题讨论】:
php 中默认的 POST 仅作为键值对工作。如果您想从它们那里获得更多功能,则必须自己实现或找到已经完成的库。我会说看起来数据正在正确发送和接收。 【参考方案1】:基本上,我希望 $_POST["value"] 包含一个带有名称和查询的对象。
确实如此。
您只是在查看以application/x-www-form-urlencoded
编码的原始数据,使用 PHP 的复杂对象方括号语法。
当 PHP 将其反序列化以填充 $_POST
时,它将以您期望的形式进行。
【讨论】:
谢谢。我实际上并没有使用 PHP,而是受到了一些启发。我想确保我没有在客户端做任何事情。【参考方案2】:最简单的方法之一是在 Json 字符串中序列化您的嵌套对象
$.ajax(
type:"POST",
url: "resources/savedata.html",
data: JSON.stringify(data),
success: function(data)
...
,
complete: function()
...
【讨论】:
以上是关于将嵌套对象传递给 POST 请求 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将两个不同的对象传递给邮递员中的 POST 请求以测试 RESTful API?
将额外参数传递给jquery ajax promise回调[重复]
C ++将抽象类型的动态分配对象传递给函数并存储在向量中[重复]
C#asp.net将具有长属性的对象传递给前端会改变它的值[重复]