AJAX 中的成功或错误回调不起作用

Success or error call back in AJAX not working

本文关键字:错误 回调 不起作用 成功 AJAX      更新时间:2023-09-26
$(document).ready(function () {
$("#loginForm").submit(function (e)
{
    var Data = $(this).serializeArray();
    var formURL = $(this).attr("action");
    var PostData =
    {
        "CompanyName": $(this).serializeArray().CompanyName,
        "Username": $(this).serializeArray().Username,
        "Password": $(this).serializeArray().Password
    }
    $.ajax(
    {
        url: formURL,            
        data: PostData,
        success: function (data, textStatus, jqXHR) {
            alert("Data" + data);
            alert("Jq" + jqXHR);
            alert("textStatus" + textStatus);
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert("Failed..ajax error response type " + textStatus);
        }
    });
    e.preventDefault(); //STOP default action
})
});
$("#loginForm").submit(); //SUBMIT FORM

这是我对C#代码的简单Ajax请求。我确信 C# 给出了正确的值(根据情况(。

C# 根据情况返回truefalse。但无论如何,这个 Ajax 脚本都没有给我一个我编码的警报窗口。

相反,我从以下位置得到此响应

This XML file does not appear to have any style information associated with it. The document tree is shown below. <boolean xmlns="http://schemas.microsoft.com/2003/10/Serialization/">false</boolean>

false并且只有标记中的值在其 true 时更改。谁能告诉我为什么successerror都不起作用。

使工作变得更好的是:

$("#loginForm").submit(function (event) {
    event.preventDefault();
    $.post($(this).attr("action"), $(this).serialize())
        .done(function (results) {
        alert(results);
    })
        .fail(function (error) {
        alert(error);
    })
        .always(function () {
        alert("AJAX Complete");
    });
});

从它的名字可以看出,.serializeArray()方法返回一个数组 - 而不是一个对象。数组的形式为:

[
  {
    name: "a",
    value: "1"
  },
  {
    name: "b",
    value: "2"
  },
  {
    name: "c",
    value: "3"
  }
]
  • 对象数组
  • 参考: http://api.jquery.com/serializearray/
  • 需求:http://api.jquery.com/serialize/

因此,要访问第三个value您需要提供索引 2 -- ..[2].value ... name ...[2].name .您的代码存在会阻止进行 ajax 调用的错误。错误是否可能来自其他地方?

因此更改:

var PostData =
{
    "CompanyName": $(this).serializeArray().CompanyName,
    "Username": $(this).serializeArray().Username,
    "Password": $(this).serializeArray().Password
}

自:

var PostDate = $(this).serialize();