校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 關于IE下AJAX的問題探討

關于IE下AJAX的問題探討

熱門標簽:外呼系統獲取客戶手機號 襄陽外呼系統接口 老虎郵局地圖標注點 徐州電銷卡外呼系統供應商 科智聯智能電銷機器人 目標三維地圖標注 百靈鳥 上海浦東百度地圖標注中心注冊 青海醫療智能外呼系統怎么樣
今天JS練手的時候,想封裝一個發送AJAX請求的對象,當然,是想要兼容全瀏覽器的。代碼如下:
復制代碼 代碼如下:

var Ajax = {
xhr: null,
callback: null,
XMLHttp: function() {
var xmlhttp;
//標準瀏覽器
if(window.XMLHttpRequest) {
try {
xmlhttp = new XMLHttpRequest();
}
catch(e) {
alert('Unknown Ajax Error');
//console.log('Unknown Ajax Error');
}
}
//IE瀏覽器
else {
if(window.ActiveXObject) {
try {
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
catch(e) {
try {
xmlhttp = new ActiveXObject('MSXML2.XMLHTTP');
}
catch(e) {
alert('Unknown Ajax Error');
//console.log('Unknown Ajax Error');
}
}
}
}
return xmlhttp;
},
connect: function(paramsObj) {
var PO = paramsObj;
//判斷傳參合法性
if(!(PO instanceof Object)) {
alert('Ajax params illegal');
//console.log('Ajax params illegal');
return false;
}
else if(!(PO.urlPO.methodPO.callback)) {
return false;
}
//初始化內部參數
this.xhr = this.XMLHttp();
this.callback = PO.callback;
//遍歷params對象并生成url參數
var requestParams = '';
if(PO.params) {
for(key in Po.params) {
requestParams += '' + key + '=' + params[key];
}
requestParams = requestParams.substr(1);
}
//發起Ajax請求
try {
var xhr = this.xhr;
xhr.onreadystatechange = this.response;
//POST請求處理
if(PO.method.toLowerCase()=='post') {
xhr.open('POST',PO.url,true);
xhr.send(requestParams);
}
//GET請求處理
else if(PO.method.toLowerCase()=='get') {
xhr.open('GET',PO.url+'?'+requestParams,true);
xhr.send(null);
}
}
catch(e) {
this.callback(null,-1);
}
},
response: function() {
// 此段代碼在全瀏覽器下測試通過
// if(Ajax.xhr.readyState==4) {
// if(Ajax.xhr.status=='200') {
// Ajax.callback(Ajax.xhr.responseText);
// }
// else {
// Ajax.callback(null,Ajax.xhr.status);
// }
// }
//
// 下面的代碼在IE下失效(無報錯,請求有相應,卻沒有返回結果),其它瀏覽器無此問題
if(this.readyState==4) {
if(this.status=='200') {
Ajax.callback(this.responseText);
}
else {
Ajax.callback(null,this.status);
}
}
}
};

//Ajax實例
Ajax.connect({
url: 'test.html',
method: 'GET',
callback: function(data,err) {
if(data!=null) {
alert(data);
// console.log(data);
}
else {
alert(err);
// console.log(err);
}
}
});

問題描述: 大家看一下我代碼中有一塊注釋掉的代碼,那塊代碼是在全瀏覽器下測試通過的。而沒有注釋掉的代碼是有問題的代碼,具體表現:

在Chrome,Firefox,Opera,Safari下測試通過,在IE6、7(IE8+沒有測試)下的表現是:沒有報錯,也沒有返回結果。

對比上下兩塊代碼的不同,我想有兩個可能,一個是this指向的問題,一個是IE下onreadystatechange函數執行的上下文環境有區別于其它瀏覽器。但是現在又無法確定問題,IE6、7下的JS調試又挺困難的(試了firebug-lite,但是沒有想象中的好用,而且這個Ajax對象在firebug-lite下調用卻成功了,有點糊涂)
解決過程:

其實測試方法很簡單。主要是頭腦一發熱沒想到,吃了個飯回來就恍然大悟。

其實JS在處理this指向不明的問題的時候,可以嘗試使用this instanceof Object這類判斷去了解它指向的是一個什么類型的變量。而對于判斷是否為全局調用,則可以使用this===window。在這里我用的就是這個方法。

在代碼出現問題的那一塊,我們可以試著插入一段:

alert(this instanceof Object);

結果發現,在IE6下,返回為false!一目了然!在IE下才可能出現如此詭異的返回值!證明什么?也就是說函數的執行上下文并非是對象!如此一來,在IE下就只能想到window對象了,要知道IE向來都是奇葩。你們標準瀏覽器說window對象是對象,我就偏不認。你還在懷疑我的看法?那何不試試?

alert(this===window);

結果是true!怎么樣?沒話說了吧?所以這樣,問題就明朗了:

在IE下,AJAX請求得到響應后,回調函數onreadystatechange是在全局環境下被調用的。而在標準瀏覽器下,其執行上下文是XMLHttpRequest對象。故造成了我這次的“事故”。

標簽:荊州 紅河 商洛 股票 揭陽 佛山 辛集 咸寧

巨人網絡通訊聲明:本文標題《關于IE下AJAX的問題探討》,本文關鍵詞  關于,下,AJAX,的,問題,探討,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《關于IE下AJAX的問題探討》相關的同類信息!
  • 本頁收集關于關于IE下AJAX的問題探討的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    在线欧美一区二区| 成人免费看黄yyy456| 国产精品自拍毛片| 欧美tk—视频vk| 美女视频一区二区| 久久九九国产精品| 国产·精品毛片| 一个色综合av| 欧美成人激情免费网| 国产a级毛片一区| 亚洲精品久久久蜜桃| 欧美一区二区大片| 国v精品久久久网| 亚洲一区中文日韩| 久久久久久久综合狠狠综合| 99精品视频免费在线观看| 性做久久久久久免费观看 | 91精品一区二区三区久久久久久| 日本aⅴ亚洲精品中文乱码| 亚洲国产成人午夜在线一区| 欧美三级电影网站| 丁香激情综合五月| 久久精品国内一区二区三区| 亚洲乱码国产乱码精品精小说 | 亚洲成人在线观看视频| 久久精品国产99国产精品| 在线播放亚洲一区| 国产999精品久久| 亚洲va欧美va国产va天堂影院| 日韩一区二区在线看| 国产a久久麻豆| 丝袜脚交一区二区| 中文字幕亚洲欧美在线不卡| 日韩欧美激情在线| 在线欧美一区二区| 国产大陆亚洲精品国产| 国产成人8x视频一区二区| 91精品婷婷国产综合久久| 国产成人免费视| 午夜久久福利影院| 亚洲乱码国产乱码精品精小说 | 精品美女被调教视频大全网站| av一区二区三区四区| 久久国产夜色精品鲁鲁99| 国产精品国产三级国产普通话蜜臀| 欧美色图片你懂的| 91麻豆国产福利精品| 国产不卡免费视频| 日韩在线一二三区| 亚洲一区精品在线| 亚洲六月丁香色婷婷综合久久| 久久午夜电影网| 日韩美女视频在线| 51精品视频一区二区三区| 欧美视频完全免费看| 一本色道久久综合亚洲aⅴ蜜桃 | 美女视频第一区二区三区免费观看网站| 亚洲精品国产一区二区三区四区在线| 国产精品久久久久久久岛一牛影视 | 国产成人精品影院| 国产精品影视天天线| 国产91精品一区二区麻豆亚洲| 丁香激情综合五月| 91在线一区二区| 在线观看不卡视频| 欧美一区二区日韩| 久久先锋影音av鲁色资源网| 国产午夜精品一区二区三区嫩草| 久久丝袜美腿综合| 中文字幕在线不卡一区二区三区 | 色综合久久中文综合久久牛| 91成人在线观看喷潮| 欧美日韩国产三级| 欧美videos大乳护士334| 久久无码av三级| 亚洲免费av高清| 蜜臀久久99精品久久久久久9| 激情丁香综合五月| av中文字幕不卡| 欧美精品在欧美一区二区少妇| 日韩一级黄色大片| 国产精品国产三级国产普通话99| 亚洲免费资源在线播放| 日本aⅴ免费视频一区二区三区| 狠狠色综合日日| 91亚洲国产成人精品一区二三 | 久久精品人人做人人爽97| 1024国产精品| 麻豆国产精品一区二区三区 | 国产一区二区调教| 色爱区综合激月婷婷| 日韩欧美在线网站| 中文字幕综合网| 美女久久久精品| 欧美性猛片aaaaaaa做受| 精品播放一区二区| 午夜av电影一区| 99精品视频一区| 久久久久久久久久久久久久久99| 亚洲图片欧美色图| 成人99免费视频| 日韩欧美视频在线| 久久亚洲一区二区三区明星换脸 | 精品中文字幕一区二区| 91香蕉视频污在线| 久久久.com| 麻豆freexxxx性91精品| 欧洲精品在线观看| 中文字幕日本不卡| 国产成人在线视频网址| 日韩精品一区二区在线| 亚洲一区二区三区视频在线播放| 国产成人精品免费视频网站| 精品久久久久久综合日本欧美| 一区二区三区视频在线看| 国产**成人网毛片九色| 2020国产精品自拍| 久久66热偷产精品| 日韩欧美一级精品久久| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美日韩一区二区三区不卡| 一区二区三区在线视频免费观看| 不卡的av电影| ...av二区三区久久精品| 不卡的电影网站| 亚洲视频图片小说| 99精品欧美一区二区蜜桃免费| 国产精品久久午夜夜伦鲁鲁| 丁香一区二区三区| 国产精品久久午夜| 色综合久久99| 同产精品九九九| 欧美一卡在线观看| 蜜臀av亚洲一区中文字幕| 日韩欧美卡一卡二| 国产大陆a不卡| 国产精品热久久久久夜色精品三区 | 捆绑紧缚一区二区三区视频 | 7777女厕盗摄久久久| 亚洲女人小视频在线观看| www.日韩大片| 亚洲精品亚洲人成人网在线播放| 成人高清视频在线观看| 亚洲少妇最新在线视频| 在线观看成人免费视频| 日本不卡一区二区| 久久午夜免费电影| 91麻豆成人久久精品二区三区| 一区二区三区国产精品| 91精品国产色综合久久久蜜香臀| 狠狠色伊人亚洲综合成人| 亚洲国产精品成人综合色在线婷婷| 成人精品电影在线观看| 亚洲精品国产高清久久伦理二区| 欧洲中文字幕精品| 免费成人在线观看视频| 中文字幕av一区 二区| 日日摸夜夜添夜夜添精品视频 | 欧美男男青年gay1069videost| 亚洲欧美一区二区三区极速播放 | 国产99久久精品| 韩日精品视频一区| 精品日韩在线一区| 国产一区视频在线看| 中文字幕在线不卡一区二区三区| www.66久久| 五月婷婷综合网| 欧美精品一区二区不卡| 91成人在线精品| 国内一区二区在线| 亚洲h精品动漫在线观看| 久久久久国产精品麻豆| 欧美日韩在线免费视频| 国产精品一区二区在线观看不卡 | 毛片不卡一区二区| 亚洲精品视频一区二区| 精品欧美乱码久久久久久| 91麻豆视频网站| 国产毛片一区二区| 日韩国产欧美在线视频| 亚洲天堂久久久久久久| 久久综合999| 欧美一二三四区在线| 欧美三级午夜理伦三级中视频| 成人综合婷婷国产精品久久蜜臀| 亚洲18影院在线观看| 国产精品电影一区二区| 欧美精品一区二区三区四区| 在线观看视频欧美| 91亚洲资源网| 国产精品亚洲综合一区在线观看| 日韩电影网1区2区| 午夜精品国产更新| 亚洲国产一区视频| 亚洲一区在线观看视频| 亚洲人吸女人奶水| 亚洲日本在线天堂| 国产精品二区一区二区aⅴ污介绍| 国产日本欧美一区二区| 久久精品免费在线观看|