为什么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"})}