1. 程式人生 > >jQuery ajax請求錯誤返回status 0和錯誤error的問題

jQuery ajax請求錯誤返回status 0和錯誤error的問題

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表單