您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Ajax犯的錯誤怎么處理,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
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 id="__mceDel"> <em id="__mceDel"><em id="__mceDel"><em id="__mceDel"> }else </em></em></em></em><em 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犯的錯誤怎么處理”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。