jQuery ajax請求錯誤返回status 0和錯誤error的問題
阿新 • • 發佈:2018-12-05
jQuery ajax請求錯誤返回status 0和錯誤error的問題,responseText是"error",狀態碼是0而不是200:後臺返
回來進入error
$.ajax({ url: '/register', data: { "phone": phone, "userName": userName, "password": password, "email": email }, type: "post", dataType: "json", success: function (data) { console.log(data); console.log("--------") if (data == "1") { alert("註冊成功"); flag = true; } else { alert("註冊失敗"); } }, error:function (data) { alert("AJAX錯誤資料"+ data.status); } });
分析問題,發現以上程式碼沒有問題,請求根本沒有傳送到後臺,狀態碼是0表示沒有發出ajax請求。各個狀態含義:
- 0 - (未初始化)還沒有呼叫send()方法
- 1 - (載入)已呼叫send()方法,正在傳送請求
- 2 - (載入完成)send()方法執行完成,
- 3 - (互動)正在解析響應內容
- 4 - (完成)響應內容解析完成,可以在客戶端呼叫了
jQuery ajax請求錯誤返回status 0和錯誤error的問題,分析可能的原因:
- url不存在(排除)
- url不可達(排除)
- 傳送了跨域請求(排除)
- 資料格式錯(排除)
- ajax在完成之前請求已經被取消(ajax請求沒有發出),由於,例如:頁面已經跳轉或跳轉太快、瀏覽器輸入新的url、按鈕立即新的點選等
修改方法是在原來的按鈕button的type="submit"改成"button",頁面不立即跳轉,問題排除。
注意:html中的有沒有form表單