日期:2014-05-16  浏览次数:20649 次

使用ajax的经典错误

在使用ajax时,出现的经典错误,切记ajax是异步的,程序不会等待其异步返回值,不然就是同步的了。

?

?

?

function test(){

??var result=chk_str();

??alert(result); ?//此处的返回值一般是undefined,因为ajax是异步的,在调用chk_str()时,开始执行$.post()时,该程序就执行过了,开始后续出来,不会等待$.post()的返回值,所以此时抓到的返回值result为undefined。

?? ?……

?

?

function chk_str(){

?? var ?returnflag="ok";

?? $.post(someUrl,function(data){?? ? ? ? ? ? ? ? ?

?? ? ? ? ? ? ? ? ?if($.trim(data='')){

?? ? ? ? ? ? ? ? ? ? ? return ?returnflag;?? ? ?

?? ? ? ? ? ? ? ? ? ? ?}else{

?? ? ? ? ? ? ? ? ? ? ? ?returnflag=data;

?? ? ? ? ? ? ? ? ? ? ? ?return ?returnflag;

?? ? ? ? ? ? ? ? ? ? } ?? ? ? ? ? ?

?? ? ? ? ? ? ?});

?

}