DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX基礎知識 >> Ajax犯的錯誤處理方法
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犯的錯誤處理方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對網站的支持!

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved