Ajax中的async用于控制(false)同步和(true)异步,默认的是true,即请求默认的是异步请求
$.ajax({
type: "POST",
url: "/users/sessions",
//async
async: false,
dataType: "json",
data: {userName:$("#userName").val(),password:$("#password").val()},
success: function (result) {
if (result.resultCode == 200) {
event.preventDefault();
location.href = "home.do";
} else {
event.preventDefault();
$('#errorInfo').html(result.message);
}
}
});
一、async值为true (异步)
当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候请求users/sessions的请求还没有执行完,可能就执行了后面的操作,那么后面就可能出现空值的情况。
二、async值为false (同步)
当执行当前AJAX的时候会停止执行后面的JS代码,直到AJAX执行完毕后时,才能继续执行后面的JS代码。
false为同步,上面的Ajax请求会将将整个浏览器锁死,只有/users/sessions执行结束后,才可以执行后面其它操作。