$.post("./chk_code.php",{code:"1234"},function(msg){
if(msg==1){
flag = 1;
}else{
flag = 0;
}
});
alert(flag);
今天被这个问题折腾的要死,alert输出的值总是说未定义。说明flag并没有被传到外面来。
在网上查了很多资料,终于恍然大悟,这就是异步的特点,也就是说还没来得急赋值,就已经alert这个变量了.
也就是只要把请求设置成同步,就可以获取这个变量的值了
只需要在前面加上一行代码,即:
$.ajaxSetup({async:false});
$.post("./chk_code.php",{code:"1234"},function(msg){
if(msg==1){
flag = 1;
}else{
flag = 0;
}
});
alert(flag);
这样就可以正常输出flag的值了
不过虽然$.post 也能做到同步请求,但可能会造成无法预料的后果,无法预期数据什么时候回应过来,网页有可能会卡死
发表评论
抢沙发~