Ajax async false已弃用?

use*_*381 2 javascript ajax jquery asynchronous

我正在使用jQuery 1.7并且我async:false用于我的AJAX requets,但我已经知道这个函数已被弃用.

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

$("#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');
}
});
Run Code Online (Sandbox Code Playgroud)

HTML:

<form id="form">
 <input type="text" name="email">
 <input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

如果我用async: false这个作品.使用callBack我在这里看到解决方案:等待来自调用函数的jquery ajax回调

Que*_*tin 5

从文档:

在jQuery 1.8,采用异步的:假以jqXHR($ .Deferred)已被弃用

你没有使用它jqXHR.

也就是说,非异步HTTP对JavaScript来说非常糟糕,最好避免使用.在回调中或从回调中完成工作.不要尝试将数据返回到调用函数,以便它可以完成工作.

  • 我假设你的意思是"*同步HTTP很可怕*"? (2认同)