jquery ajax return没有返回值的解决方法

本文深入探讨了Ajax异步与同步请求的区别,并提供了两种实现方案:一是通过添加async:false使请求变为同步,确保在接收到响应后再执行后续JS操作;二是通过传入成功和失败回调函数,灵活处理Ajax请求的成功与失败情况,适用于大型网站的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最后解决方案有2种:

1、添加async:false.即修改为同步了,什么意思?(按同事解释就是,这是等这个ajax有了返回值后才会执行下面的js。一语道破天机,怪不得以前很多ajax调用里面的赋值都不起作用)。这样等ajax给bol赋值完毕后,才执行下面的js部分。而刚刚异步的话,还没有来得及赋值,就已经return了。

function getAjaxReturn() 
{ 
var bol=false; 
$.ajax({ 
type:"POST", 
async:false, 
url:"ajax/userexist.aspx", 
data:"username="+vusername.value, 
success:function(msg){ 
if(msg=="ok"){ 
showtipex(vusername.id,"<img src='images/ok.gif'/><b><font color='#ffff00'>该用户名可以使用</font></b>",false) 
// return true; 
bol=true; 
} 
else 
{ 
showtipex(vusername.id,"<img src='images/cancel.gif'/><b><font color='#ffff00'>该用户已被注册</font></b>",false); 
vusername.className="bigwrong"; 
//return false; 
} 
} 
}); 
return bol; 
} 

2、 通过传入一个函数解决这个问题。

function getAjaxReturn(success_function,fail_function) 
{ 
var bol=false; 
$.ajax({ 
type:"POST", 
url:"ajax/userexist.aspx", 
data:"username="+vusername.value, 
success:function(msg){ 
if(msg=="ok"){ 
showtipex(vusername.id,"<img src='images/ok.gif'/><b><font color='#ffff00'>该用户名可以使用</font></b>",false) 
success_function(msg); 
} 
else 
{ 
showtipex(vusername.id,"<img src='images/cancel.gif'/><b><font color='#ffff00'>该用户已被注册</font></b>",false); 
vusername.className="bigwrong"; 
fail_function(msg); 
//return false; 
} 
} 
}); 
function success_function(info) 
{ 
//do what you want do 
alert(info); 
} 
funciont fail_function(info) 
{ 
//do what you want do 
alert(info); 
} 

按需选择自己需要的方案吧。一般大网站都采用第2种传入函数的方式,来处理成功和失败情况下的页面提示。

详细出处参考:http://www.jb51.net/article/28597.htm



另一种引用:http://blog.youkuaiyun.com/yfz19890410/article/details/12637513


Jquery ajax 得到返回值

方案1:通过js回调函数获取返回值

方案2:

1.ajax默认是异步调用的,所以得到的返回值是空值,要得到值必须改成同步:async: false,//同步。

2.必须定义一个全局变量 var result = ""来保存返回值。否则得到的是undefined

 function GetReturnValue(url, jsonText) {
            var result = "";
            $.ajax({
                type: "POST",
                url: url,
                data: jsonText,
                contentType: "application/json;charset=utf-8",
                dataType: "json",
                async: false,//同步
                success: function (json) {
                    result = eval('(' + json.d + ')');
                }, failure: function () {
                    result = "";
                }
            })
            return result;
        }





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值