日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

IE中同一个url第二次AJAX调用无法触发onreadystatechange事件

發(fā)布時(shí)間:2025/7/14 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IE中同一个url第二次AJAX调用无法触发onreadystatechange事件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

如果第二次通過(guò)XMLHttpRequest去請(qǐng)求一個(gè)URL,則不會(huì)觸發(fā)onreadystatechange時(shí)間,雖然從調(diào)試插件來(lái)看,ie是進(jìn)行了這次請(qǐng)求。

?

后來(lái)發(fā)現(xiàn),這個(gè)是因?yàn)樵趇e下,如果請(qǐng)求的URL已經(jīng)被瀏覽器cache,則調(diào)用send方法以后,xhr的readyState已經(jīng)成為了4,即 一開(kāi)始就是請(qǐng)求完成的狀態(tài),當(dāng)然以后readystate不會(huì)再被賦值,也不會(huì)觸發(fā)onreadystatechange事件。

?

解決辦法:在調(diào)用send后立即檢查xhr的readystate,如果已經(jīng)結(jié)束,則直接處理,不必再等待onreadystatechange事件。

?

  • getJSON?:?function(url,?callback,?onerror)?{?//?處理ajax?get請(qǐng)求??
  • ????var?xhr?=?window.ActiveXObject???new?ActiveXObject("Microsoft.XMLHTTP")?:?new?XMLHttpRequest();??
  • ????onerror?=?$X.isFunction(onerror)???onerror?:?null;??
  • ????xhr.open('GET',?url,?true);??
  • ????xhr.setRequestHeader("X-Requested-With",?"XMLHttpRequest");??
  • ????xhr.send();??
  • ????var?f?=?function()?{??
  • ????????if?(xhr.readyState?==?4)?{????
  • ????????????if?(xhr.status?==?200)?{????
  • ????????????????try?{???
  • ????????????????????var?data?=?eval('('+xhr.responseText+')');??
  • ????????????????}?catch?(e){??
  • ????????????????????onerror?&&?onerror();?//?處理json解析錯(cuò)誤??
  • ????????????????????xhr?=?null;??
  • ????????????????????return;??
  • ????????????????};??
  • ????????????????callback(data);??
  • ????????????}?else?{??
  • ????????????????onerror?&&?onerror();??
  • ????????????}??
  • ????????????xhr?=?null;?//?fix?memory?leaks??
  • ????????}??
  • ????};??
  • ????if?(xhr.readyState?==?4)?{?//?for?the?stupid?ie??
  • ????????f();??
  • ????}?else?{??
  • ????????xhr.onreadystatechange?=?f;??
  • ????}??
  • }?
  • ? http://www.iteye.com/topic/467019

    轉(zhuǎn)載于:https://www.cnblogs.com/sk-net/archive/2011/11/25/2230886.html

    總結(jié)

    以上是生活随笔為你收集整理的IE中同一个url第二次AJAX调用无法触发onreadystatechange事件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。