对于AJAX的提交,默认是异步的.也就是说这个AJAX提交信息后,不需要等待服务器完成响应就可以直接运行接下来的代码
$.ajax({
url:Iurl,
type:"post",
data:$("#login-form").serialize(),
dataType:'json',
success:(function (result) {
if (result.code==200){
layer.msg('登陆成功'+result.message);
page_back(result.message);
}else {
layer.msg(result.message);
return;
}
})
});
console.log("提交完成")
这个时候我们希望的是,等待AJAX提交表单信息,等待服务器返回result之后,判断是否会提前结束方法
但是异步操作,使得我们在提交表单信息的同时,同时完成了打印"提交完成".无法得到预期
实际上我们只需要将AJAX中新增async
属性设置值为false
,这个属性表示是否为异步操作.默认值为true
.
修改后就是将AJAX改为同步操作,等待返回后,继续后续操作.
$.ajax({
url:Iurl,
type:"post",
data:$("#login-form").serialize(),
dataType:'json',
// 这里新增 asyns 属性 ,其他无变化
async:false,
success:(function (result) {
if (result.code==200){
layer.msg('登陆成功'+result.message);
page_back(result.message);
}else {
layer.msg(result.message);
return;
}
})
});
console.log("提交完成")