ajax请求 return异常

本文详细解析了在Ajax请求中如何正确使用return获取返回值。由于Ajax默认为异步执行,直接在回调函数中return是无法在外部函数中获取到返回值的。文章通过示例展示了如何通过设置async属性为false使Ajax请求变为同步,从而实现return返回值的有效使用。

ajax请求中,如果我们需要return返回值的话,直接return是行不通的:

function f() {
    $.ajax({
        url:"baidu.com" ,
        type:"get", 
        data:{
            'a': '1',
            'b': '2',
        },
        success: function (data) {
            return data.code;
        }
    });
}

原因:在ajax中return并不指的是在外部函数 f() 中return,需要将retrun拿出来:

function f() {
    $.ajax({
        url:"baidu.com" ,
        type:"get", 
        data:{
            'a': '1',
            'b': '2',
        },
        success: function (data) {
            code = data.code;
        }
    });
    return code;
}

但是这样还是拿不到返回值,原因是ajax是异步调用,return返回值的时候,ajax请求并没有完成,所以取不到返回值,所以需要修改成如下,添加参数让ajax请求变成阻塞:

function f() {
    $.ajax({
        url:"baidu.com" ,
        type:"get", 
        data:{
            'a': '1',
            'b': '2',
        },
        async:false, //阻塞执行请求
        success: function (data) {
            code = data.code;
        }
    });
    return code;
}

这样就可以调用成功了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值