以下代码在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;
?>
答案 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");