通过ajax POST json数据发送一个空数组

Mik*_*ike 9 php arrays ajax json

我正试图通过ajax发布数据,这是我的信息:

    var jsondata =
                {"address" : [
                { "id": addid, "streetaddress": streetaddress, "city": city, "state": state,  "zipcode": zipcode, "latitude": latitude},
            ]   
            };  

    var jsontosend = JSON.stringify(jsondata, null, 2);
Run Code Online (Sandbox Code Playgroud)

ajax功能:

    $.ajax({
                type: "POST",
                url: "process.php",
                contentType: "application/json; charset=utf-8",
                dataType: "JSON",
                data: jsontosend,
                success: function(msg){
                   alert(msg);
                          }
             });

            return false;

            alert('Data sent');
Run Code Online (Sandbox Code Playgroud)

}

在php结束时,当我print_r($ _ POST)它只是说

    array(0) {
    }
Run Code Online (Sandbox Code Playgroud)

我正在警告(jsontosend)并且它完美地展示了我的一切,以及使用post mothod的firebug,它以完美的清洁方式显示所有的参数.

它传递任何数据的唯一方法是使用GET方法.

任何意见是极大的赞赏!

编辑:从firebug添加POST数据.这是警报功能提醒的:

    {"address":[{"id":1473294,"streetaddress":"3784 Howard Ave","city":"Washington DC","state":"DC","zipcode":20895,"latitude":39.027820587}]}
Run Code Online (Sandbox Code Playgroud)

这是firebug在使用POST方法时传递的内容:

    myData=%7B%0A++++%22address%22%3A+%5B%0A++++++++%7B%0A++++++++++++%22id%22%3A+76076%2C%0A++++++++++++%22streetaddress%22%3A+%223784+Howard+Ave%22%2C%0A++++++++++++%22city%22%3A+%22Washington+DC%22%2C%0A++++++++++++%22state%22%3A+%22DC%22%2C%0A++++++++++++%22zipcode%22%3A+20895%2C%0A++++++++++++%22latitude%22%3A+39.027820587%0A++++++++%7D%0A++++%5D%0A%7D
Run Code Online (Sandbox Code Playgroud)

这是$ _POST的var_dump的响应:

    array(0) {
Run Code Online (Sandbox Code Playgroud)

}

这是$ _POST ['myData']的var_dump

    NULL
Run Code Online (Sandbox Code Playgroud)

Ste*_*ler 9

我对你使用contentType属性的方式持怀疑态度.尝试取出contentType.默认内容类型是application/x-www-form-urlencoded(http://api.jquery.com/jQuery.ajax/).

另外,为您的数据属性使用{mydata:jsontosend}之类的东西.

$.ajax({
            type: "POST",
            url: "process.php",
            //contentType: "application/json; charset=utf-8",
            dataType: "JSON",
            data: {mydata: jsontosend},
            success: function(msg){
               alert(msg);
                      }
         });
Run Code Online (Sandbox Code Playgroud)