开发中 ,ajax踩过的坑

开发中 ,ajax踩过的坑

基本的


1,ajax状态0问题

有些情况下在测试ajax代码的过程中,加了  xhr.status==200,但是代码一直不执行。这是因为xhr.status==200是要通过服务器来浏览,并且服务器页面没有发生错误或者跳转时才返回的状态,此状态和你通过浏览器访问页面时服务器定义的状态一致。


如果是直接拖进浏览器,未报错时,返回结果xhr.status是0,不是200。


所以有些时候可以多加一个判断:xhr.status==0

if(xhr.status==200||xhr.status==0){

  alert('ok');

}

2,ie下缓存。

    在ie下get会出现缓存问题。解决办法很简单,直接在url后加时间戳或者随机数,但是一定要加“?”

xhr.open("get","index.php?_dc="+new Date().getTime(),true);

3,ajax对象属性大小写的问题

有些浏览器是大小写是敏感的。如firefox

if(xhr.readystate==1),在ie下成立,但firefox就不行了,因为ff区分大小。

必须是if(xhr.readyState==1),同理还有属性 responseText,responseXML等等。


回复列表



回复操作






   

发布时间:2016-03-04 09:10:48