Javascript 将嵌套对象传递给POST请求
如何通过POST请求发送嵌套对象Javascript 将嵌套对象传递给POST请求,javascript,php,jquery,json,Javascript,Php,Jquery,Json,如何通过POST请求发送嵌套对象 var name = "test", path = "?diffCurr%5B%5D=FALSE&diffProv%5B%5D=FALSE", data = { datatype:"report", "value":{ "name":name, "query":path } }; $.ajax(
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
基本上,我希望$\u POST[“value”]
包含一个名为和查询为的对象
基本上,我希望$u POST[“value”]包含一个带有名称和查询的对象
是的
您只需查看原始数据,这些数据在application/x-www-form-urlencoded
中使用PHP的方括号语法对复杂对象进行编码
当PHP将其反序列化以填充$\u POST
时,它将以您期望的形式执行此操作。最简单的方法之一是将嵌套对象序列化为Json字符串
$.ajax({
type:"POST",
url: "resources/savedata.html",
data: JSON.stringify(data),
success: function(data){
...
},
complete: function(){
...
}
默认情况下,PHP中的POST只作为键值对工作。如果你想从他们那里获得更多的功能,你必须自己实现,或者找到一个已经实现了的库。我想说的是,看起来数据的发送和接收都是正确的。谢谢。实际上,我并没有使用PHP,而是受到了它的启发。我想确保我没有在客户端做任何事情。