首頁 > web前端 > js教程 > 主體

Ajax犯的錯誤處理方法

韦小宝
發布: 2017-12-30 17:38:47
原創
2195 人瀏覽過

ajax 發送請求時狀態判斷 if else 語句問題如何解決?接下來透過本文跟大家分享ajax犯的錯誤處理方法,對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 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犯的錯誤處理方法,希望對大家有幫助! !

相關推薦:

jQuery中ajax錯誤偵錯分析

實例講解HTTP封包及ajax基礎知識

Ajax如何實作網站劫持的偵測

以上是Ajax犯的錯誤處理方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!