- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基本的============================================ 1,最经典的就是ie下的缓存问题了。如果使用的是get,那么在ie下出现缓存问题。导致代码只执行一次。解决办法就是加时间戳或者随机数,使url变为唯一,这样就不会出现ie下的缓存问题了,或者改为post提交。xhr.open(get,xxxx.aspx?_dc=+new Date().getTime(),true); 2,ajax对象属性的大小写问题在w3c浏览器,如ff中,对大小写是敏感。如if(xhr.readystate==4)这种写法,在ie下是成立的,但是在ff下就行不通了,因为ie不区分大小写,ff是区分大小的。标准写法为if(xhr.readyState==4),同理还有属性responseText,responseXML,status。还有状态转换函数xhr.onreadystatechange,要注意全部为小写3,ajax状态0问题有些时候在测试ajax代码的时候,加了xhr.status==200的判断后,一直不执行xhr.status==200的代码,这个就需要注意了。xhr.status==200是要通过服务器来浏览,并且服务器页面没有发生错误或者转向时才返回200状态的,此状态和你通过浏览器访问页面时服务器定义的状态一致。直接拖进浏览器浏览结果或者双击运行html页面的,未发生错误时,此时的xhr.status是0,不是200。所以可以多加一个xhr.status==0的判断。如下复制代码代码如下:if(xhr.status==200||xhr.status==0){ alert(ok); } 直接拖进浏览器浏览结果或者双击运行html页面时,又出现一个问题,如果请求的是xml文件,那想当然的是使用responseXML属性返回xmlDom了,但是在ie返回不了xmlDom属性,解决办法如何呢,看下面的responseXML问题。4,responseXML问题。要使用responseXML属性,请求的是xml文件或者设置了响应头为text/xml的动态页面了。要注意如果请求的是动态页面,一定不要忘记设置contenttype为text/xml!!!!!!!!切记~~~~~~ asp为response.contenttype=text/html 为Response.ContentType=text/html; php为 header(content-type:text/xml;); 在ie下有个问题,直接拖进浏览器浏览或者双击运行html预览效果时,请求的即使是xml文件,使用responseXML返回不了xmldom。大家测试下就知道了,如下showbo.xml复制代码代码如下:showbo item1item item2item item3item item4item /showbo test.html 复制代码代码如下:function getajax(){ if(window.XMLHttpRequest)return new XMLHttpRequest(); else if(window.ActiveXObject)return new ActiveXObject(microsoft.xmlhttp); } varxhr=getajax(); xhr.onreadystatechange=function(){ if(xhr.readyState==4){ if(xhr.status==200||xhr.status==0){ var doc=xhr.responseXML,item=doc.getElementsByTagName(item); alert(item.length);//在ie输出为0,在ff下为4。似乎在ie下未生成xml的树结构,具体原因要问ms了。。} else alert(发生错误\n\n+xhr.status); } } xhr.open(get,showbo.xml?_dc=+new Date().getTime(),true); xhr.send(null); 解决办法就是使用microsoft.xmldom对象重新建立xml的树结构,如下复制代码代码如下:xhr.onreadystatechange=function(){ if(xhr.readyState==4){ if(xhr.status==200||xhr.status==0){ var doc=xhr.responseXML; if(document.allxhr.status==0){//为ie并且直接托进浏览器的时重构xml的树结构doc=new ActiveXObject(microsoft.xm
文档评论(0)