我通过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文档。
答案 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'
});