jquery ajax请求同步与异步问题

默认发送ajax请求都是异动,以下设置为同步(async:false),此时是要等到ajax的回调函数success执行完毕后,才执行这个ajax之后的代码(即alert(333);return;).如此时需要根据data==1而结束整个调用这个ajax的方法,就不能在success判断return了,此时的return仅仅只是

结束这个ajax请求而不是调用这个ajax的方法,后面代码(即alert(333);return;)还是会执行下去。若想根据ajax的data判断是否结束方法,

则需要在ajax外面判断,先把ajax请求后data赋值给外部变量message,再用message==1判断是否结束此方法。

PS:一定要设置成同步,否则message有可能为undefined就无法判断了

(同步一定会等到回调函数success执行完后再执行ajax后续代码,异步的不要说回调函数success执行完,就是有可能ajax请求都没有发在它之后代码就执行了!)

var message;

$.ajax({

             type: "GET",

             url: "test.json",

     async:false,

             data: {username:$("#username").val(), content:$("#content").val()},

             dataType: "json",

             success: function(data){

                         //if(data==1) return;

message = data;

                      }

         });

if(message==1) return;

alert(333);

return;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值