用ajax链接后台接口,请求失败。参数检查没问题,请求得到的responseText也做了对象处理。把onreadystatechange改成onload事件后,请求成功。
xhr.open("get",url,true);
xhr.send();
xhr.οnlοad= function () {
if(xhr.status >=200 && xhr.status < 300 ||xhr.status ==304){
alert(xhr.responseText);
alert("请求成功");
}
else {
alert("失败原因:"+xhr.status);
}
}
原因是onreadystatechange事件有跨浏览器兼容性的问题,它必须放在在xhr.open()之前。
否则,就会出现请求失败,而xhr.onload()事件则可以写在xhr.open()的后面,所以,上个例子如果想使用onreadystatechange来实现,把xhr.open()和xhr.send()放到最后,然后把onload改成onreadystatechange,加if(xhr.readyState ==4){}即可。代码如下:
xhr.onreadystatechange= function () {
if(xhr.readyState == 4){
if(xhr.status >=200 && xhr.status < 300 ||xhr.status ==304){
alert(xhr.responseText);
}
else {
alert("失败原因:"+xhr.status);
}
}
xhr.open("get",url,true);
xhr.send();
}