关于js函数中发送ajax请求,返回值…

来源:互联网 发布:葡萄牙红酒淘宝店 编辑:程序博客网 时间:2024/06/05 16:19

关键知识点:

添加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请求,返回值无效的问题解决方案

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

为了方便理解,所以网上又摘抄了一个例子
ViewCode
复制代码
 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
原创粉丝点击