XMlHttpRequest在Firefox扩展中不起作用

时间:2013-11-05 20:10:44

标签: javascript firefox firefox-addon

以下代码在Google Chrome中正常运行,但在Firefox中运行不正常。我无法提出请求,也无法收到回复。我不知道问题是什么?

这是我的Javascript代码。

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
 xmlhttp=new XMLHttpRequest();
 }

  else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  // alert(str);
  xmlhttp.open("GET","server url/folder/file.php?q="+"string",true,"user","password");
  alert();
      xmlhttp.onreadystatechange=function()
   {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
   {
 alert("response");
  alert(xmlhttp.responseText);
   var string=xmlhttp.responseText; 
    }
   }
   xmlhttp.send();

这是我的服务器脚本,它会响应。

<?php
header('Access-Control-Allow-Origin: *');
$q=$_GET["q"];
echo $q;

?>

2 个答案:

答案 0 :(得分:1)

如果你这样添加X-Requested-With标题怎么样:

xmlhttp.setRequestHeader("X-Requested-With", "XMLHttpRequest");

另外我会使用xmlhttp.send(null);,因为一些旧的Firefox浏览器需要null参数。最后一件事:在我第一次宣布xmlhttp.open听众之前,我不会打电话给onreadystatechange

祝你好运,我希望这会有所帮助。

答案 1 :(得分:0)

您是否尝试在调用发送之前设置内容类型?

像这样

xmlhttp.setRequestHeader("Content-Type",    "application/x-www-form-urlencoded");