XMLHttprequest发送一个空帖子

时间:2012-04-19 05:07:11

标签: php javascript ajax xmlhttprequest

我正在使用以下代码发送请求:

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的变量都有值,控制台也会记录一个空数组。我在帖子上做错了什么?

2 个答案:

答案 0 :(得分:5)

在发送电话前添加setRequestHeader

ajaxHandler.setRequestHeader("Content-type","application/x-www-form-urlencoded");
ajaxHandler.send("category="+category+"&tag="+tag);

替换:

   if(ajaxHandler.readyState == 4)
   {
      console.log(ajaxHandler.responseText);
   }

   if(ajaxHandler.readyState == 4 && ajaxHandler.status==200)
   {
      console.log(ajaxHandler.responseText);
   }

希望这有帮助。

答案 1 :(得分:0)

web-nomad的答案是正确的,但是如果您仍然收到一个空数组,请回想一下是否在服务器配置中隐藏了文件扩展名。如果是,则对“ file.extension”的请求将被重定向到“ file”,并且POST数据将丢失。

这是一个小错误,但也很容易忽略。很容易假设错误是代码而不是URL引起的,特别是因为根本就返回了数组-因此人们可能会认为URL是正确的。