jQuery外部获取$.post函数内变量的值

$.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 也能做到同步请求,但可能会造成无法预料的后果,无法预期数据什么时候回应过来,网页有可能会卡死

发表评论

[/0o0] [..^v^..] [0_0] [T.T] [=3-❤] [❤.❤] [^v^] [-.0] [!- -] [=x=] [→_→] [><] 更多 »
昵称

抢沙发~