AJAX获取数据成功后的返回数据如何声明成全局变量

收藏
2 2134
^  戏子而已
^ 戏子而已 2017-07-10 17:32:56
付费话题:0 积分


var result=""; $.ajax({ type: "post", url: "../reportRule/main.do?method=selectReportToAdd", data:{}, success: function(msg){ result = msg; alert(result );\\有数据 } }); alert(result)\\无数据


应该不少人遇到这种情况


原因:

  ajax是异步请求,即javascript是非阻塞运行的,在$.ajax还没运行完alert命名可能就执行了,当然第二个alert的时候是没有数据的

解决办法:   将ajax设置为同步请求,设置$.ajax的async属性为false。

var GV = {datas:""};
 $.ajax({ 
type:'get',
 url:$("#data_main").attr('data-href'), 
data:'', async:false,
 success:function(data){ 
GV.datas = data; 
} 
});


这样在输出GV.datas就可以全局使用了
评论话题
提交