• 微信
您当前的位置: 首页> JavaScript> AJAX>

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

作者:Alpha时间:2020-04-27 阅读数:2923 +人阅读

1.jpg

作为一枚PHP程序猿,前端知识不是很精通,在之前的开发过程中就遇到过类似的问题,想要在js代码其他地方使用ajax中返回的数据,但是输出后却是空的,想着是变量作用域的问题,试了几次均失败,就采用其他方法解决了。

这次遇到同样的问题,百度了一下,原来解决是如此简单。

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

原因:

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

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

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


本站所有文章、数据、图片均来自互联网,一切版权均归源网站或源作者所有。

如果侵犯了你的权益请来信告知我们删除。邮箱:595397166@qq.com

标签: 小程序

上一篇:jQuery中ajax的4种常用请求方式

下一篇:没有了

阿尔法

软件开发工程师#全栈工程师

{include file=foot.html}