javascript - 同步等待 $.ajax 调用

标签 javascript jquery ajax

我需要一个超链接来执行 Ajax 调用,完成后,对超链接执行标准操作。

<a href="afterwards.html" target="_blank" onclick="return CallFirst();">Link</a>

javascript函数调用$.ajax(),等待成功或失败,然后返回true。

function CallFirst()
{
    $deferred = $.ajax({
                    type: "POST",
                    url: url,
                    data: data
                });

    // **todo** WAIT until the Ajax call has responded.

    // Return true, which makes the <a> tag do it's standard action
    return true;
}

代码必须等待 $.ajax 成功,然后从 CallFirst() 返回 true。

$deferred.when() 立即终止。怎么让它等?

最佳答案

只需将 async 属性设置为 false

$deferred = $.ajax({
                type: "POST",
                url: url,
                data: data,
                async: false
            });

但使用回调确实是一个更好的主意。

关于javascript - 同步等待 $.ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19222755/

相关文章:

javascript - 无法迭代 JavaScript 对象

JavaScript 全局键盘钩子(Hook)

javascript - jQuery/Javascript 元素高度始终返回 0

javascript - 如何将文本从一个多重输入复制到另一个

javascript - xhr 错误状态为 0,但脚本无论如何都会继续

javascript - 可以每秒向服务器发送 xmlhttprequest 吗?

javascript - 如何访问包含在 iframe 的 $(document).ready(function(){}) 中的函数?

javascript - 如何将变量传递给函数并返回值?

javascript - EmberJS 自定义路由操作

没有 Comet 的 Jquery 实时图表