Ajax犯的错误处理方法
1,ajax发送请求时状态判断ifelse语句问题。
varxhr=newXMLHttpRequest(); xhr.open("get",strUrl);<br> <br>xhr.onreadystatechange=function(){ <br><br> if(xhr.readyState===4){ <br><br><emid="__mceDel"> if(xhr.status===200){ console.log(xhr.responseText); } <br><br></em><emstyle="line-height:1.5;"id="__mceDel"> <emid="__mceDel"><emid="__mceDel"><emid="__mceDel"> }else</em></em></em></em><emstyle="line-height:1.5;"id="__mceDel"><emid="__mceDel"><emid="__mceDel"> <emid="__mceDel"><emid="__mceDel">{<br> console.log(xhr.status);} <br>}</em></em></em></em></em>
xhr.send();
当时输出了两个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犯的错误处理方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!