AJAX获取数据成功后的返回数据如何声明成全局变量
作者:Alpha时间:2020-04-27 阅读数:2923 +人阅读
作为一枚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
下一篇:没有了