在发起异步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请求里面执行这样也可以处理;

更多推荐

ajax请求返回值赋值问题