好久之前我曾经在写一个小页面,其中需要请求后台的数据并将其存储下来
var f=-1;
$.ajax({
url:http://127.0.0.1/,
type:POST,
dataType:json,
data:Data,
success:function(res){
if(res.status=='200'){
f=1;
}else{
f=0
}
}
});
if(f==1){
alert("success!");
}else if(f==0){
alert("no");
}
一开始我是这样写的,但是后来发现并没有任何弹窗提示,还特意F12了一下,发现后台传过来的数据好好的,一点问题也没有。
后来才发现,原因竟然是语句执行顺序的缘故
其实答案非常简单:ajax默认的async(异步)是true,也就是说,执行到$.ajax();这一句后,并没有因为请求而阻塞,于是在回调函数之前,便执行了if判断。