处理我自己的项目。我将一个XMLHttpRequest从Firefox 44发送到localhost到XAMPP。我收到的状态为0,状态为1,这是相关代码。
function sendReq(php,segment){
alert("sendreq called ");
//we out here getting 0 statuses. check out cwd, check out what php value is,
xhr.open("POST", php, true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.onreadystatechange = getData(segment);
xhr.send();
}
//callback function for ajax request.
function getData(div){
if ((xhr.readyState == 4) && (xhr.status == 200))
{
var serverResponse = xhr.responseText;
div.innerHTML = serverResponse;
}else{
div.innerHTML = "<p>loading!</p> ready state: " + xhr.readyState +"</br> status: "+ xhr.status;
}
}
我在其他地方读过RS:1 / S:0 XHR属性表示不成功的跨域请求,但这都发生在localhost上,文件全部在同一目录中,并在检查XHR响应时在Firebug中,返回文本就在那里。
我已经为这个页面构建了一个几乎完全相同的代码并且它可以工作,它只指向一个不同的.php文件。比较两者和谷歌搜索并没有启发我。所以欢迎任何建议。谢谢!
答案 0 :(得分:1)
您正在执行getData()
函数一次,在页面加载时,并将undefined
返回到onreadystatechange
处理程序,因为这是添加括号时发生的情况。
必须是
xhr.onreadystatechange = getData;
请注意缺少括号,或者如果必须传递参数
onreadystatechange = function() {
getData(segment);
}