【问题标题】:AJAX call not working when async: true异步时 AJAX 调用不起作用:true
【发布时间】:2013-10-08 18:26:08
【问题描述】:

所以我希望这个 AJAX 调用异步运行,但它只适用于 async: false

    var url = 'Default.aspx/CheckLogin';
    $.ajax({
        async: true, // works with async: false
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: url,
        data: '{"email":"' + email.val().trim() + '", "password":"' + password.val().trim() + '"}',
        dataType: "json",
        success: function (data) {
            alert("success!");
        },
        error: function (result,something,error) {
            alert("Error: " + error);
        }
    });

编辑:

当 async 为真时,警报将立即显示“错误:”,即没有错误消息。 CheckLogin 函数非常慢,所以当它实际运行时需要一段时间。

知道我做错了什么吗?

编辑 2:

这是我从 chrome://net-internals/#events 获得的一些信息:

    t=1381258516496 [st= 0] +REQUEST_ALIVE  [dt=12]
    t=1381258516497 [st= 1]   +URL_REQUEST_START_JOB  [dt=11]
                       --> load_flags = 142737665 (ENABLE_LOAD_TIMING | MAYBE_USER_GESTURE | REPORT_RAW_HEADERS | VALIDATE_CACHE | VERIFY_EV_CERT)
                       --> method = "POST"
                       --> priority = 2
                       --> upload_id = "0"
                       --> url = "http://localhost:1176/web_new/Default.aspx/CheckLogin"
    t=1381258516497 [st= 1]      HTTP_CACHE_GET_BACKEND  [dt=0]
    t=1381258516497 [st= 1]     +HTTP_STREAM_REQUEST  [dt=11]
    t=1381258516508 [st=12]        CANCELLED
    t=1381258516508 [st=12]     -HTTP_STREAM_REQUEST
    t=1381258516508 [st=12]   -URL_REQUEST_START_JOB
                       --> net_error = -3 (ERR_ABORTED)
    t=1381258516508 [st=12] -REQUEST_ALIVE

【问题讨论】:

  • 当您尝试使用 assync:false 时会发生什么?控制台中的一些错误会有所帮助。
  • 什么不适用于 async: false ?
  • 是什么让你认为它不是异步的?只需删除该属性?
  • 如何触发请求?
  • 您应该打开您的网络检查器并查看网络活动选项卡。在那里,您将能够确切地看到请求发生了什么。

标签: asp.net ajax jquery asynchronous


【解决方案1】:

Async true 是 ajax 的默认值。有时您需要将其设置为 false,例如,您可能会在回调中进行另一个 ajax 调用,在这种情况下,您需要将外部 ajax 调用设置为 async false,并将回调中的调用设置为 true。 此外,由于您调用了代码隐藏,请确保正确格式化数据并且代码隐藏 webmethod 是静态的。除此之外,您的 ajax 看起来还不错。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-19
    • 2017-08-20
    • 1970-01-01
    • 2021-06-14
    相关资源
    最近更新 更多