javascript - Ajax async false 已弃用?

标签 javascript jquery ajax asynchronous

我使用的是 jQuery 1.7,我使用 async:false 来处理我的 AJAX 请求,但我了解到这个函数已被弃用。

我需要使用回调,但这不起作用:

$("#form").submit(function(e) {
var cnf;

$.ajax({
    type: "POST", 
    url: 'page.php', 
    data: $('#form').serialize(),
    async: true,
    success: function(responseText) { 
        if(responseText.indexOf('err') != -1) {
            cnf = "error";
        } 
        else {
            cnf = "success";
        }
        return callBack( cnf );
    }, 
    error: function() {
        cnf = "error";  
        return callBack( cnf ); 
    } 
});


if(cnf == "success")
{
   alert('ok');
}
});

HTML:

<form id="form">
 <input type="text" name="email">
 <input type="submit">
</form>

如果我使用 async: false 这有效。使用 callBack 我在这里看到了解决方案:wait for a jquery ajax callback from calling function

最佳答案

来自文档:

As of jQuery 1.8, the use of async: false with jqXHR ($.Deferred) is deprecated

您没有将它与 jqXHR 一起使用。

也就是说,非异步 HTTP 对 JavaScript 来说是可怕的,最好避免。在回调中或从回调中完成您的工作。不要试图将数据返回给调用函数,以便它可以完成工作。

关于javascript - Ajax async false 已弃用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24187160/

相关文章:

javascript - 页面加载时平滑的颜色过渡

javascript - 单击按钮时绘制多行 JavaScript - 不使用 Canvas

javascript - 如何使用 office.js 访问更改的数据

javascript - jQuery 让 div 在点击时具有相同的高度

javascript - 用于 ElevateZoom jQuery 插件的 AngularJS 指令

javascript - 从 AJAX 请求调用 django View (解析 celery task_id)

当模式匹配字符串时,Javascript/jQuery 比 $.inArray 更快的替代方案

javascript - 单击该 div 内的复选框时如何获取标题值?

ajax - Spring框架从3.0.2升级到3.2.0时Spring JSON出现问题

java - 第二次调用 HttpServletResponse