ajax请求返回值赋值问题

在发起异步ajax请求的时候,期望在返回回调函数中将返回值赋值给前面的全局变量出现的问题:
var a;
$.post(url,function(data){
    a = data;
});

console.log(a);
这里的a打出来是undefined的;

究其原因,因为ajax请求默认是异步请求,所以js解释执行的时候是不会进行等待ajax的返回,而是会直接进行下一步解释
执行,所以在回调函数中的赋值也没有效果;

解决:
1、可以将ajax请求的默认异步方式修改为同步方式这样可以赋值成功,即等待ajax请求的结果返回;
async:false;
$.ajax({
    method:post,
    url:url,
    data:data,
    async:false,
    success:function(data){
        //回调方法
    }
})
2、另一种方法则是需要进行初始化的数据、方法直接在ajax请求里面执行这样也可以处理;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值