为什么php找不到JSON发送的索引


Why php doesnt find index send by JSON

为什么PHP找不到我的索引myPostData

jQuery/AAJAX

$('a').on("click", function(){
    $.ajax({
        type: "POST",
        url: "../image_view.php",
        data: {myPostData : {"lastName":"Sperrow", "firstName":"Jack"}}
        dataType: "json"
    })}
});

PHP

<?php
    var_dump($_POST['myPostData']);
?>

我得到以下错误:

(!)注意:未定义的索引:第7行/var/www/image_view.php中的myPostData
调用堆栈

#   Time    Memory  Function    Location
1   0.0001  228280  {main}( )   ../image_view.php:0
null

var_dump($POST)当

 data: {myPostData : JSON.stringify({"lastName":"Sperrow", "firstName":"Jack"})}

输出

 array (size=0)
  empty

var_dump($POST)当

 data: {myPostData : "something"}

输出

 array (size=0)
  empty

原因是,对于application/x-www-form-urlencoded的内容类型,jQuery通常串行化以下行:

data: {myPostData : {"lastName":"Sperrow", "firstName":"Jack"}}

作为

myPostData[lastName] => Sperrow
myPostData[firstName] => Jack

什么可以解决你的问题是:

data: {myPostData : JSON.stringify({"lastName":"Sperrow", "firstName":"Jack"})}