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回调
从文档:
在jQuery 1.8,采用异步的:假以jqXHR($ .Deferred)已被弃用
你没有使用它jqXHR.
也就是说,非异步HTTP对JavaScript来说非常糟糕,最好避免使用.在回调中或从回调中完成工作.不要尝试将数据返回到调用函数,以便它可以完成工作.