首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Ajax 登錄無響應排查:錯誤回調與 JSON 格式

     編輯:程式設計綜合問答

典型症狀

  • 點擊登錄按鈕變灰,無彈窗,無網絡錯誤提示。
  • JS 斷點進入 if 判斷,但 Ajax 成功/失敗回調均不執行。

核心問題

  1. 取值方式錯誤:$("#txtName").attr("value") 只獲取初始 HTML 屬性,應用 .val() 獲取用戶輸入的當前值。
  2. 缺失 error 回調:導致服務端返回非 JSON 或 HTTP 錯誤時靜默失敗。
  3. JSON 格式不合法:服務端返回單引號包裹的字符串(如 {'flag':1}),dataType: "json" 要求雙引號({"flag":1})。

修正代碼

$.ajax({
    type: "post",
    url: "Login.asmx/UserLogin",
    data: JSON.stringify({
        _name: $("#txtName").val(),
        _pwd: $("#txtPwd").val(),
        _validate: $("#txtValidate").val()
    }),
    contentType: "application/json;charset=utf-8",
    dataType: "json",
    success: function (data) {
        if (data.flag === 1) alert("登錄成功");
        else alert("失敗:" + data.msg);
    },
    error: function (xhr) {
        console.error(xhr.responseText); // 關鍵:輸出服務端原始響應
        alert("系統錯誤:" + xhr.status);
    }
});

服務端返回示例

// C# 匿名對象自動序列化為合法 JSON
return new { flag = 1, msg = "OK" }; 
// 禁止手動拼接字符串:return "{'flag':1}";
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved