先簡單介紹下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路徑問題
路徑不能有中文
