Javascript 将嵌套对象传递给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(

如何通过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
基本上,我希望
$\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,而是受到了它的启发。我想确保我没有在客户端做任何事情。