位置:首页 > JavaScript > AJAX >

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

字号+ 作者:micloud 来源:www.seoalphas.com 2020-04-27 15:46 浏览量:1995

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)\\有数据


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

下一篇:没有了
相关文章
  • jQuery中ajax的4种常用请求方式

    jQuery中ajax的4种常用请求方式

    浏览次数:4455

  • PHP+AJAX初探

    PHP+AJAX初探

    浏览次数:2441

网友点评
评论区域