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方法:

  1. 返回數據類型不是JSON
  2. 網絡中斷
  3. 后台響應中斷
返回JSON格式引發parsererror錯誤:

很多時候會遇到明明成功請求到后台,后台也返回了數據到前端,http狀態是200,卻發生parsererror錯誤,並不執行success方法。

這是因為:jquery1.4版本以后對json格式要求非常嚴格了,要滿足json.org網站定義的格式才能執行success回調,否則都會出錯,無法解析返回的json數據。

JSON格式總結下,詳細的去json.org 查看。
1)鍵名稱:用雙引號 括起
2)字符串:用雙引號 括起
3)數字,布爾類型不需要 使用雙引號 括起

例如:返回的是{success:true,id:1} 這種不規則的字符串,不是嚴格的json格式,改成{"success":true,"id":"1"} 就可以正常執行success回調了。




免責聲明!

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



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