• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    解析ajax核心XMLHTTPRequest對象的創建與瀏覽器的兼容問題

    來源:懂視網 責編:小采 時間:2020-11-27 22:52:17
    文檔

    解析ajax核心XMLHTTPRequest對象的創建與瀏覽器的兼容問題

    解析ajax核心XMLHTTPRequest對象的創建與瀏覽器的兼容問題:MLHttpRequest 對象是AJAX功能的核心,要開發AJAX程序必須從了解XMLHttpRequest 對象開始。 了解XMLHttpRequest 對象就先從創建XMLHttpRequest 對象開始,在不同的瀏覽器中創建XMLHttpRequest 對象使用不同的方法: 先看看IE創建XMLHttp
    推薦度:
    導讀解析ajax核心XMLHTTPRequest對象的創建與瀏覽器的兼容問題:MLHttpRequest 對象是AJAX功能的核心,要開發AJAX程序必須從了解XMLHttpRequest 對象開始。 了解XMLHttpRequest 對象就先從創建XMLHttpRequest 對象開始,在不同的瀏覽器中創建XMLHttpRequest 對象使用不同的方法: 先看看IE創建XMLHttp

    MLHttpRequest 對象是AJAX功能的核心,要開發AJAX程序必須從了解XMLHttpRequest 對象開始。

    了解XMLHttpRequest 對象就先從創建XMLHttpRequest 對象開始,在不同的瀏覽器中創建XMLHttpRequest 對象使用不同的方法:

    先看看IE創建XMLHttpRequest 對象的方法(方法1):

      var xmlhttp=ActiveXobject("Msxml12.XMLHTTP");//較新的IE版本創建Msxml12.XMLHTTP對象

      var xmlhttp=ActiveXobject("Microsoft.XMLHTTP");//較老的IE版本創建Microsoft.XMLHTTP對象

    而 Mozilla、Opera、Safari 和大部分非IE的瀏覽器都使用下面這種方法(方法2)創建XMLHttpRequest 對象:

      var xmlhttp=new XMLHttpRequest();

    注意:實際上Internet Explorer 使用了一個名為 XMLHttp 的對象,而不是 XMLHttpRequest 對象,而 Mozilla、Opera、Safari 和 大部分非 Microsoft 瀏覽器都使用的是后者(下文統稱 XMLHttpRequest 對象)。IE7開始也開始使用XMLHttpRequest 對象了。

    因此我們需要創建一個能兼容多瀏覽器的XMLHTTPRequest對象:

    第一種方法:

      var xmlhttp=false;//創建一個新變量并賦值false,使用false作為判斷條件說明還沒有創建XMLHTTPRequest對象

      function CreateXMLHttp(){

      try{

       xmlhttp=new XMLHttpRequest();//嘗試創建 XMLHttpRequest 對象,除 IE 外的瀏覽器都支持這個方法。

    }catch(e){

      try{

      xmlhttp=ActiveXobject("Msxml12.XMLHTTP");//使用較新版本的 IE 創建 IE 兼容的對象(Msxml2.XMLHTTP)。

    }catch(e){

      try{

      xmlhttp=ActiveXobject("Microsoft.XMLHTTP");//使用較老版本的 IE 創建 IE 兼容的對象(Microsoft.XMLHTTP)。

    }catch(failed){

        xmlhttp=false;//如果失敗了還保持false

    }

    }

    }

    return xmlhttp;

    }

    判斷是否成功的例子:

    if(!xmlhttp){

     創建xmlhttp失敗

    }else{

     創建xmlhttp成功

    }

    第二種方法:
     if(typeof(XMLHttpRequest)=="undefined" && window.ActiveXObject){

      function XMLHttpRequest(){

      var xmlhttp_arr=["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];

      var xmlhttp;

      for(i=0;i<xmlhttp_arr.length;i++){

       if(xmlhttp=new ActiveXObject(xmlhttp_arr[i]))

       break;

    }

      return xmlhttp;

    }

    }

    //這個是除了IE之外的瀏覽器創建XMLHttpRequest對象

    var xmlhttp=new XMLHttpRequest();

    創建xmlhttp成功后,然后再來看看它的一些屬性和方法吧,還有最重要的onreadystatechange事件句柄

     方法:

     open() 初始化http請求參數,包括URL和http方法,但是不發送請求;

     abort() 取消當前響應,關閉連接并斷開所有網絡未結束的活動;

     getAllResponseHeaders() 把http響應頭部作為未解析字符串返回;

     getResponseHeaders) 返回指定的http響應頭的值;

     send() 發送http請求使用傳遞給open()方法的參數,以及傳個該方法的可選請求體;

     setResponseHeader() 向一個打開但沒有發送的請求設置或添加一個Http請求。

     屬性:

     readyState 說明http請求的狀態;(有5個狀態分別是

     0 表示沒有初始化;

     1 表示讀取中

     2 表示已讀取

     3 交互中(接受中)

     4 完成

    )

     responseText 說明為服務器接收到得響應體,如果沒有接收到數據就返回空字符串;

     responseXML 說明對請求的回應 解析為XML并用document對象返回;

     status 說明http請求的狀態;

     statusText 說明http請求狀態不是以數字形式而是用名稱;

     onreadystatechange 是readySate狀態改變時調用事件的函數。

    下面是一個發送請求數據并返回結果的xmlhttpRequest對象;

     生成一個XMLHTTPRequest對象

     var xmlhttp=CreatXMLHttp();
     xmlhttp.open("get","http://www.gxlcms.com/jaryle",true);
     xmlhttp.onReadyStateChange=getresult;
    //怎么告訴XMLHttpRequest 對象狀態變化時讓誰來處理這個變化呢用到二種方法:一種是匿名方法xmlhttp.onReadyStateChange=function(){處理變化的代碼}
    另一種方法:指定方法:xmlhttp.onReadyStateChange=getresult;
        function getresult(){處理變化的代碼}
     xmlhttp.send();
     function getresult(){
     if(xmlhttp.readyState==4){ //當readyState的狀態等于4時表示接收到數據
     if(xmlhttp.status==200){ //這個時候就需要用到status屬性,即由服務器返回的 HTTP 狀態代碼。 xmlhttp.status 等于200時表示傳輸過程完整沒有錯誤
     alert(xmlhttp.responseText);
    }
    }
     }

    注意:所以我們應該按照上面的流程來記憶:創建XMLHttpRequest 對象 -> 指定發送地址及發送方法 -> 指定狀態變化處理方法 -> 發送請求,請求發送后狀態變化了就會自動調用指定的處理方法。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    解析ajax核心XMLHTTPRequest對象的創建與瀏覽器的兼容問題

    解析ajax核心XMLHTTPRequest對象的創建與瀏覽器的兼容問題:MLHttpRequest 對象是AJAX功能的核心,要開發AJAX程序必須從了解XMLHttpRequest 對象開始。 了解XMLHttpRequest 對象就先從創建XMLHttpRequest 對象開始,在不同的瀏覽器中創建XMLHttpRequest 對象使用不同的方法: 先看看IE創建XMLHttp
    推薦度:
    標簽: 創建 瀏覽器 兼容
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久久WWW免费人成精品| 在线精品自拍无码| 亚洲国产精品成人久久蜜臀| 成人区精品一区二区不卡| 久久国产精品二国产精品| 国产精品对白刺激久久久| 无码8090精品久久一区| 99久久精品免费观看国产| 国产精品国色综合久久| 中文字幕精品一区| 久久国产精品偷99| 一级香蕉精品视频在线播放| 精品福利一区二区三区| 国产精品午夜免费观看网站| 69SEX久久精品国产麻豆| 亚洲国产精品综合久久网络 | 天天视频国产精品| 国产成人精品久久综合| 好吊妞视频精品| 97久久精品午夜一区二区| 日韩人妻无码精品久久免费一| 欧美成人精品高清视频在线观看 | 亚洲人精品午夜射精日韩| 久久久久久久久久免免费精品| 成人国产精品日本在线观看| 久久亚洲国产精品一区二区| 国产精品无码午夜福利| 精品亚洲麻豆1区2区3区| 久久精品无码专区免费东京热| 无码人妻精品一区二区三区久久久| 无码乱码观看精品久久| 精品一区二区三区中文字幕| 国产99视频精品免视看7| 少妇人妻无码精品视频app| 综合人妻久久一区二区精品| 亚洲精品97久久中文字幕无码| 亚洲国产小视频精品久久久三级 | 久久免费国产精品一区二区 | 日韩精品专区AV无码| 一本久久a久久精品vr综合| 亚洲αv在线精品糸列|