好吧我觉得我生气了,因为我之前已经做了一百万次,现在我无法让它发挥作用。我正在使用一些简单的JSON对PHP脚本执行ajax发布,然后从我的PHP返回JSON,但是它当前将$ _POST显示为空数组。
这是我的js:
$.ajax({
type: "POST",
url: "/account/book-promo.php",
data: '{"firstName":"Peter" , "lastName":"Jones"}',
success: function(response) {
console.log(response);
}
});
我的PHP:
<?php
var_dump($_POST);
exit;
Firebug显示我的请求正在使用POST,因为它应该和我的数据作为JSON发送但我收到的响应是:
array(0) {
}
我唯一能想到的是,某种服务器设置阻止了它的工作,但是我想不出为什么会这样。也许我错过了一个支架或什么东西,它让我发疯!
欢迎任何和所有建议!
答案 0 :(得分:2)
发送它就像你想把它作为json一样发送。
data: { data : '{"firstName":"Peter" , "lastName":"Jones"}' },
如果您想将其作为POST
发送,请删除引号'
data: {"firstName":"Peter" , "lastName":"Jones"},
答案 1 :(得分:0)
你必须这样做:
$.ajax({
type: "POST",
dataType: "json", // <---------------its required if response is json
url: "/account/book-promo.php",
data: {"firstName":"Peter" , "lastName":"Jones"}, //<---instead of string send the object this way
success: function(response) {
console.log(response);
}
});
你在帖子中说从我的PHP重新调整JSON :
因此您需要使用dataType:"json"
,并且您发送到您的php的数据应作为对象发送(通常是由:
分隔的键和值对,如{ {1}} )您发送的代码{key:value}
。