将嵌套对象传递给POST请求

时间:2014-03-27 19:58:53

标签: 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({
        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"]包含namequery的对象。

2 个答案:

答案 0 :(得分:1)

  

基本上,我希望$ _POST [" value"]包含一个带有名称和查询的对象。

确实如此。

您只是查看使用PHP的方括号语法在application/x-www-form-urlencoded中编码的原始数据,用于复杂对象。

当PHP反序列化它以填充$_POST时,它将以您期望的形式执行此操作。

答案 1 :(得分:1)

最简单的方法之一是在Json字符串中序列化您的嵌套对象

 $.ajax({
    type:"POST",
    url: "resources/savedata.html",

    data: JSON.stringify(data),

    success: function(data){
                ...
    },
    complete: function(){
                ...
    }