Php XMLHttprequest发送一个空post
我正在使用以下代码发送请求:Php XMLHttprequest发送一个空post,php,javascript,ajax,xmlhttprequest,Php,Javascript,Ajax,Xmlhttprequest,我正在使用以下代码发送请求: var ajaxHandler = new XMLHttpRequest(); ajaxHandler.onreadystatechange = function() { if(ajaxHandler.readyState == 4) { console.log(ajaxHandler.responseText); } } ajaxHandler.open("POST", "filterCards", true); ajaxHand
var ajaxHandler = new XMLHttpRequest();
ajaxHandler.onreadystatechange = function()
{
if(ajaxHandler.readyState == 4)
{
console.log(ajaxHandler.responseText);
}
}
ajaxHandler.open("POST", "filterCards", true);
ajaxHandler.send("category="+category+"&tag="+tag);
在PHP方面,我有以下几点:
var_dump($_POST);
但是,即使category和tag的变量都有值,控制台也会记录一个空数组。我的帖子有什么不对吗?在发送呼叫之前添加
setRequestHeader
:
ajaxHandler.setRequestHeader("Content-type","application/x-www-form-urlencoded");
ajaxHandler.send("category="+category+"&tag="+tag);
替换:
if(ajaxHandler.readyState == 4)
{
console.log(ajaxHandler.responseText);
}
与
希望这有帮助。的答案是正确的,但是如果您仍然收到一个空数组,请回想一下您是否在服务器配置中隐藏了文件扩展名。如果是,则对“file.extension”的请求将重定向到“file”,并且POST数据将丢失
这是一个很小的错误,但也容易被忽视。很容易假设错误在代码中,而不是在URL中,特别是当数组返回时——因此人们可能认为URL是正确的
if(ajaxHandler.readyState == 4 && ajaxHandler.status==200)
{
console.log(ajaxHandler.responseText);
}