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>
當時輸出了兩個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犯的錯誤處理方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
您可能感興趣的文章:- 詳解ajax的data參數錯誤導致頁面崩潰
- 快速解決ajax請求出錯狀態碼為0的問題
- PHP 中使用ajax時一些常見錯誤總結整理
- 完美解決ajax跨域請求下parsererror的錯誤
- ajax跨域訪問報錯501的解決方法
- jQuery中ajax錯誤調試分析
- Ajax向后臺傳json格式的數據出現415錯誤的原因分析及解決方法
- js ajaxfileupload.js上傳報錯的解決方法
- 解決ajax返回驗證的時候總是彈出error錯誤的方法
- Jquery Ajax Error 調試錯誤的技巧
- django使用ajax post數據出現403錯誤如何解決
- Ajax報錯400的參考解決辦法