关于js函数中发送ajax请求,返回值无效的问题解决方案_bin910729_新浪博客

关键知识点:

添加async:false.即修改为同步 ;等ajax给bool赋值完毕后,才执行下面的js部分。而异步的话,还没有来得及赋值,就已经return了。 

这是一个jquery写的ajax请求函数

function ac_checkcode(checkcode){
    $.ajax({
            url:"__URL__/checkCode",
            data:{"checkcode":checkcode},
            async:false,
            type:"post",
            dataType:"json",
            success:function(json){
                if (json.status){
                    $("#t_checkcode").html("验证码对啦亲!");
                    bool=true;//这里需要设置一个中间变量,具体是因为什么,我还不是很清楚
                }else{
                    $("#t_checkcode").html("验证码不正确哦!");
                    bool=false;
                }
            }
    });
    return bool;
}

关于js函数中发送ajax请求,返回值无效的问题解决方案

综上所述,也就是 设置成同步请求,用中间变量 ,返回中间变量。

为了方便理解,所以网上又摘抄了一个例子
View Code
复制代码
 1 var temp;
2 $.ajax({
3
async: false,
4 type : "POST",
5 url : defaultPostData.url,
6 dataType : 'json',
7
success : function(data){
8
temp=data;
9 }
10 });
11 alert(temp);
复制代码

 

这个ajax请求则为同步请求,在没有返回值之前,alert(temp)是不会执行的。 

如果async设置为:true,则不会等待ajax请求返回的结果,会直接执行ajax后面的语句。


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值