ajax中什么時候進success和error


先簡單介紹下ajax:

簡單的說Ajax請求通過XMLHttpRequest對象發送請求,該對象有四個狀態(readyState):

0-未初始化、1-正在初始化、2-發送數據、3-正在發送數據、4-完成。

當XMLHttpRequest.readyState為4時,表示ajax請求已經完成可以得到響應結果。

ajax的success和error方法根據響應狀態碼來觸發。當XMLHttpRequest.status為200的時候,表示響應成功,此時觸發success().其他狀態碼則觸發error()。

除了根據響應狀態碼外,ajax還會在下列情況下走error方法:

    返回數據類型不是JSON

    網絡中斷

    后台響應中斷

 error:

常見錯誤:

1. dataType錯誤

   類型錯誤:后台返回的dataType類型和前台寫的不一致會跳入error

   格式錯誤:jquery1.4之后對json的格式要求非常嚴格,json格式錯誤也會跳入error.{"test":1} 注意格式

   有時,在不需要返回值的情況下,扔按模板格式,設置了dataType:"json",參數;這時候,ajax傳值正確時,出現200返回成功狀態下報錯的特殊情況。

  如果你在success中使用eval處理數據就是這個錯誤了!!!

2. async請求同步異步問題

    async默認是true(異步請求),如果想一個Ajax執行完后再執行另一個Ajax, 需要把async=false

3. data不能不寫

   data為空也一定要傳"{}";不然返回的是xml格式的。並提示parsererror. data:"{}"

   parsererror的異常和Header 類型也有關系。及編碼header('Content-type: text/html; charset=utf8');

4. 傳遞的參數

    必須是ajax支持的編碼格式

5. URL路徑問題

    路徑不能有中文


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM