【问题标题】:jquery ajax method always returning an error?jquery ajax 方法总是返回错误?
【发布时间】:2012-10-10 03:00:42
【问题描述】:

我有以下 ajax 调用,每次调用时它总是会触发 error 回调函数。处理程序中的代码在错误发生后仍会运行,但永远不会执行 success 回调。我做错了什么?

 $.ajax({
        type: "POST",
        url: "Handlers/TheHandler.ashx",
        data: {
            control1: $('[id*=control1]').val(),
            control2: $('[id*=control2]').val(),
            control3: $('[id*=control3]').val(),
            control4: $('#control4').val(),
            control5: $('[id*=control5]').val(),
            control6: $('[id*=control6]').val()
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert(jqXHR.readyState);
            alert(textStatus);
            alert(errorThrown);
        },
        success: function (returnedValue) {
            alert("Got Here");
            alert(returnedValue);
        }
    });

【问题讨论】:

  • jqXHR.readyState = 0 和 textstatus = 错误。这就是我警告错误参数时得到的结果。
  • 并抛出错误?这会返回什么?
  • 试试console.log(jqXHR)看看responseTextstatus是什么。
  • 是您的处理程序期望完全相同的数据(control1,control2...)它必须完全相同
  • 您可能还想使用 Chrome 或 Firefox 的功能来捕获请求并准确查看请求/响应对是什么。我怀疑是 404 或 500。

标签: asp.net ajax jquery asp.net-ajax


【解决方案1】:

调用处理程序或使用服务器端代码时可能会出错。对于这类场景,像 firebug 这样的工具会很有用。通过导航到 Net-->XHR 选项卡,我们可以看到异步操作的结果。当然,我们也可以在 Visual Studio 中设置断点并进行调试,但这可以快速找到服务器响应,甚至可以快速找到请求是否到达服务器,而无需附加调试器。通常,检查数据变量的处理程序路径和属性名称,它必须与服务器端方法的参数匹配。它确保服务器端代码被调用。

【讨论】:

    猜你喜欢
    • 2014-01-27
    • 2012-01-08
    • 1970-01-01
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多