Ajax犯的錯誤處理方法_AJAX相關

來源:互聯網
上載者:User

1, ajax 發送請求時狀態判斷 if else 語句問題。

var xhr = new XMLHttpRequest(); xhr.open("get",strUrl);<br><br>xhr.onreadystatechange = function(){   <br><br>    if(xhr.readyState === 4){ <br><br><em id="__mceDel">        if(xhr.status ===200){   console.log(xhr.responseText);      }  <br><br></em><em style="line-height: 1.5;" id="__mceDel"><em id="__mceDel"><em id="__mceDel"><em id="__mceDel">    }else </em></em></em></em><em style="line-height: 1.5;" id="__mceDel"><em id="__mceDel"><em id="__mceDel"><em id="__mceDel"><em id="__mceDel">{<br>    console.log(xhr.status); }  <br> }</em></em></em></em></em> 
xhr.send(); 

  當時輸出了兩個200 的狀態代碼,然後才輸出xhr.responseText, 擷取到的內容。 當時很奇怪,不知道這兩個200 是怎麼來的?

  當時嘗試輸出不少內容,但還是找不到原因。 只有到把else 語句中改為 console.log(xhr.readystate)才發現了問題,這時輸出結查依次是2,3,擷取到的內容。 這時才發現原因:

  xhr 發送請求到請求結束,會經過5種狀態,狀態代碼依次是0,1,2,3,4(就是readystate 的值),狀態每發生改變一次,就會觸發readystatechange事件,呼叫事件處理函數。 當 狀態代碼是變化到2時,它調用readystatechange 事件,然後走 if/else 語句,

這是 readystate 顯然不是4,然後走else 語句 輸出 2. 以此類推,3,4 的時候再調用readystatechange 事件, 只有4 時才走if 裡面的內容,請求成功,返回請求內容。

以上所述是小編給大家介紹的Ajax犯的錯誤處理方法,希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對雲棲社區網站的支援!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.