Ajax帖子返回空$ _POST

时间:2014-02-13 09:41:39

标签: php jquery ajax

好吧我觉得我生气了,因为我之前已经做了一百万次,现在我无法让它发挥作用。我正在使用一些简单的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) {
}

我唯一能想到的是,某种服务器设置阻止了它的工作,但是我想不出为什么会这样。也许我错过了一个支架或什么东西,它让我发疯!

欢迎任何和所有建议!

2 个答案:

答案 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}