這次帶給大家使用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 裡面的內容,請求成功,回傳請求內容。
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是使用Ajax時有哪些常見錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!