jQuery POST响应好,但PHP脚本没有得到POST?

时间:2013-03-19 15:53:38

标签: php jquery post

我通过jQuery发布到php脚本:

$.post('http://*****.php', {'clicked':'true'}, 'json');

查看帖子数据,它会回复:

Request URL:http://*****.php
Request Method:POST
Status Code:200 OK

标题中的表单数据如下所示:

clicked:true

当我尝试通过以下方式检索PHP脚本上的POST数据时:

var_dump($_POST);

我得到一个空数组:

array(0) { }

但是,在使用命令行时,我可以成功查看响应中的帖子数据:

wget --post-data 'clicked=true' http://****.php

wget的成功回应是:

array(1) {
  ["name"]=>
  string(4) "test"
}

我一直无法理解......而且这不是我的HTACCESS文件。此外,GET请求工作正常。我假设我的jQuery POST是错误的,但不知道它可能是什么 - 它直接来自jQuery文档。

2 个答案:

答案 0 :(得分:3)

当POST数据作为JSON字符串发送时,$_POST将不显示数据。要访问它,您必须使用php://input

$phpinput = file_get_contents("php://input");
if(!$phpinput) {
  //No data was sent
}
else {
  //Do something with yo data
}

有关此方面的技术细节,check out this great answer在以下评论之一中做出了贡献。

答案 1 :(得分:0)

使用原始$ .ajax代替

$.ajax({

url : 'http://*.php', data : {'clicked':'true'}, dataType : 'json', method : 'post'

});