我有一个问题已经困扰我一段时间了,我知道这个话题上有无数的问题,相信我我尝试过每一个解决方案但仍然没有起作用。
这是最简单的例子,在我的情况下却不起作用。
jQuery:
$.ajax({
url: "ajax/add-user.php",
type: "POST",
data: {name: 'John'},
success: function(data){
console.log(data);
}
});
PHP
echo json_encode($_POST);
就是这样,每次作为响应我都得到一个空数组。我尝试使用serialize()
对data:
进行处理,但响应总是为空的。我没有任何错误,只有当我应该获得发送的值时得到一个空数组。
例如,在php中,如果我尝试echo
一些硬编码变量,我可以得到它们,但$_POST
和$_GET
不起作用。
有什么解决方法或如何确定问题的方法吗?
谢谢。
编辑/解决方案
好吧,看来问题出在.htaccess上,它重新编写了URL并删除了扩展名。在网络选项卡中确实请求被永久移动。从ajax URL中删除.php扩展名:问题得到解决。非常感谢,对浪费的时间很抱歉。干杯!
echo $_SERVER['REQUEST_METHOD']
。如果您得到的不是POST,那么您的原始帖子可能被重定向并且您实际上正在执行GET,这就是为什么$_POST为空的原因。 - Marc B301
,从而使您的脚本通过GET获取。 - Marc B