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

 網絡中斷

 后台響應中斷

返回JSON格式引發parsererror錯誤

很多時候會遇到明明成功請求到后台,后台也返回了數據到前端,htttp狀態是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