婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 關于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的問題探討的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产一区二区三区在线看麻豆| 日韩高清一区在线| 欧美一级专区免费大片| 日韩欧美国产综合| 久久综合九色综合欧美98| 国产日产欧美精品一区二区三区| 久久久久一区二区三区四区| 国产精品传媒入口麻豆| 亚洲一区二区欧美激情| 麻豆成人91精品二区三区| 99在线精品免费| 欧美日韩小视频| 欧美大片国产精品| 亚洲视频网在线直播| 日韩中文字幕不卡| 成人理论电影网| 欧美日韩在线播放| 色综合久久久久| 国产很黄免费观看久久| 日本成人在线电影网| 欧美一区二区网站| 欧美极品xxx| 亚洲美女偷拍久久| 蜜臀久久99精品久久久久宅男| 国产午夜精品在线观看| 亚洲国产欧美日韩另类综合| 日韩电影免费一区| 99精品国产视频| 日韩精品在线一区| 亚洲成人精品在线观看| 国产一区二区中文字幕| 在线成人午夜影院| 亚洲免费毛片网站| 国产精品一线二线三线| 777久久久精品| 亚洲女同一区二区| 成人性生交大片免费看视频在线| 日本道色综合久久| 欧美激情综合五月色丁香小说| 五月婷婷久久丁香| 成人激情黄色小说| 国产欧美一区二区精品秋霞影院| 午夜久久久久久电影| 在线观看视频欧美| 国产精品久久久久久久岛一牛影视 | 99久久精品国产一区| 日韩一级免费一区| 亚洲成人www| 色综合色狠狠天天综合色| 亚洲欧洲av在线| 精品亚洲aⅴ乱码一区二区三区| 久久www免费人成看片高清| 91精品国产色综合久久| 91精品国产欧美日韩| 亚洲免费在线观看| 成人国产免费视频| 欧美一区二区视频观看视频| 国产91精品免费| 精品国产乱码久久久久久1区2区| 奇米综合一区二区三区精品视频| 欧美久久久久中文字幕| 午夜成人在线视频| 337p亚洲精品色噜噜狠狠| 五月天欧美精品| 91精品国产一区二区| 久久国产精品区| 欧美va亚洲va在线观看蝴蝶网| 麻豆91精品视频| 久久亚洲一区二区三区明星换脸| 国产精品一二三四区| 国产精品白丝在线| 欧美日韩一区二区三区免费看| 性欧美疯狂xxxxbbbb| 91精品国产日韩91久久久久久| 美国av一区二区| 国产欧美精品一区二区色综合朱莉| 国产91精品露脸国语对白| 亚洲三级电影网站| 91精选在线观看| 国产成人精品aa毛片| 亚洲激情图片一区| 亚洲小少妇裸体bbw| 欧美性一二三区| 蜜乳av一区二区| 国产精品免费久久久久| 欧美日精品一区视频| 国产麻豆精品在线观看| 日韩一区有码在线| 欧美色偷偷大香| 国产一区二区三区在线观看精品 | 免费在线观看不卡| 国产欧美日韩不卡免费| 欧美三级电影一区| 成人丝袜18视频在线观看| 一二三区精品视频| 2017欧美狠狠色| 在线免费观看视频一区| 国内成人免费视频| 亚洲一区二区三区不卡国产欧美| 欧美www视频| 一本大道久久精品懂色aⅴ| 亚洲国产欧美另类丝袜| 中文字幕欧美国产| 日韩欧美激情四射| 欧美中文字幕一区二区三区| 国产精品1024| 日本一不卡视频| 亚洲色图在线看| 久久精品一区二区三区不卡牛牛| 欧美日韩一区二区三区在线| 国产91精品露脸国语对白| 久久国产精品免费| 五月天亚洲精品| 亚洲一区二区三区四区在线免费观看 | 日韩影院免费视频| 国产欧美日韩中文久久| 99久久国产综合色|国产精品| 亚洲欧美欧美一区二区三区| 日韩欧美中文一区二区| 成人av先锋影音| 国产乱国产乱300精品| 奇米色777欧美一区二区| 亚洲另类中文字| 国产校园另类小说区| 欧美一级久久久| 欧美日韩久久久| 欧美日本一区二区| 欧美性生活大片视频| 日本高清不卡aⅴ免费网站| 国产麻豆9l精品三级站| 日本美女一区二区三区| 天堂一区二区在线| 亚洲成人精品一区二区| 一区二区三区四区在线播放| 国产精品久久777777| 亚洲国产高清不卡| 国产精品色在线观看| 欧美国产一区在线| 中文字幕在线观看一区| 亚洲三级视频在线观看| 亚洲一区国产视频| 亚洲国产乱码最新视频| 天堂影院一区二区| 日本在线不卡一区| 久久国产乱子精品免费女| 国模无码大尺度一区二区三区| 精品一区二区三区在线观看国产 | 久88久久88久久久| 国产一区二区三区精品视频| 国产在线视频一区二区三区| 国产乱人伦精品一区二区在线观看| 久久成人免费网| 韩国精品一区二区| 国产一区二区在线视频| 成人激情动漫在线观看| 色999日韩国产欧美一区二区| 欧美丝袜丝交足nylons图片| 3d成人动漫网站| 欧美精三区欧美精三区| 日韩欧美一二三四区| 国产校园另类小说区| 亚洲欧美日韩人成在线播放| 亚洲精品国产一区二区精华液 | 奇米影视一区二区三区| 国产精品18久久久久久久网站| 高清久久久久久| 日本伦理一区二区| 欧美一区二区三区公司| 国产欧美日韩久久| 亚洲午夜精品17c| 国产九色sp调教91| 欧美在线观看18| 亚洲精品一区二区三区精华液| 国产精品久久久久久久久久免费看| 老司机午夜精品| eeuss国产一区二区三区| 欧美性视频一区二区三区| 日韩美一区二区三区| 久久尤物电影视频在线观看| 中文字幕精品一区二区三区精品 | 成人午夜视频免费看| 日本乱人伦aⅴ精品| 日韩一区二区免费高清| 91丨porny丨蝌蚪视频| 99精品欧美一区二区蜜桃免费| 亚洲欧洲一区二区三区| 亚洲欧美日本韩国| 亚洲免费电影在线| 亚洲欧美另类小说| 国产99精品视频| 亚洲尤物视频在线| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲日本va午夜在线影院| 中文字幕在线观看一区| 日韩一区精品字幕| 激情综合五月婷婷| 日本高清不卡视频| 欧美韩国日本综合| 麻豆精品久久久| 91久久精品一区二区三区|