1, ajax 发送请求时状态判断 if else 语句问题。
var xhr = new XMLHttpRequest();
xhr.open("get",strUrl);br>
br>xhr.onreadystatechange = function(){
br>br>
if(xhr.readyState === 4){
br>br>em id="__mceDel">
if(xhr.status ===200){
console.log(xhr.responseText);
}
br>br>/em>em style="line-height: 1.5;" id="__mceDel">
em id="__mceDel">em id="__mceDel">em id="__mceDel">
}else /em>/em>/em>/em>em style="line-height: 1.5;" id="__mceDel">em id="__mceDel">em id="__mceDel">
em id="__mceDel">em id="__mceDel">{br>
console.log(xhr.status); }
br> }/em>/em>/em>/em>/em>
当时输出了两个200 的状态码,然后才输出xhr.responseText, 获取到的内容。 当时很奇怪,不知道这两个200 是怎么来的?
当时尝试输出不少内容,但还是找不到原因。 只有到把else 语句中改为 console.log(xhr.readystate)才发现了问题,这时输出结查依次是2,3,获取到的内容。 这时才发现原因:
xhr 发送请求到请求结束,会经过5种状态,状态码依次是0,1,2,3,4(就是readystate 的值),状态每发生改变一次,就会触发readystatechange事件,调用事件处理函数。 当 状态码是变化到2时,它调用readystatechange 事件,然后走 if/else 语句,
这是 readystate 显然不是4,然后走else 语句 输出 2. 以此类推,3,4 的时候再调用readystatechange 事件, 只有4 时才走if 里面的内容,请求成功,返回请求内容。
以上所述是小编给大家介绍的Ajax犯的错误处理方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:- 详解ajax的data参数错误导致页面崩溃
- 快速解决ajax请求出错状态码为0的问题
- PHP 中使用ajax时一些常见错误总结整理
- 完美解决ajax跨域请求下parsererror的错误
- ajax跨域访问报错501的解决方法
- jQuery中ajax错误调试分析
- Ajax向后台传json格式的数据出现415错误的原因分析及解决方法
- js ajaxfileupload.js上传报错的解决方法
- 解决ajax返回验证的时候总是弹出error错误的方法
- Jquery Ajax Error 调试错误的技巧
- django使用ajax post数据出现403错误如何解决
- Ajax报错400的参考解决办法