ajax延迟加载解决返回值不同步

async. 默认是 true,即为异步方式, . a j a x a j a x .ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发 .ajax里的success方法,这时候执行的是两个线程。
  async 设置为 false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

//验证码ajax验证
       function CodeImg(codeText) {
           var check=false;
           $.ajaxSettings.async = false;
           $.getJSON("/csdn/member/codeCheck?code="+codeText,function (data) {
               if(data>0){
                   check=true;
               }
           })
           /*$.ajax({
               url:"/csdn/member/codeCheck",
               type:"post",
               data:{code:codeText},
               async:false,
               dataType:"json",
               success:function(data){
                   if(data>0){
                       check=true;
                   }
               },
               error:function(e){
                   console.log(e);
               }
           });*/
           return check;
       }

两种方式二选一
  这个ajax请求为同步请求,在没有返回成功数据前不会直接执行return check;

猜你喜欢

转载自blog.csdn.net/weixin_42171955/article/details/89311345