您的位置:首页 > 其它

Ajax请求中给全局变量赋值的解决方案

2017-03-15 00:00 344 查看
昨天PP遇到一个问题,ajax修改全局变量后,外面获取不到ajax里赋的值,结果为空

问题代码如下图:



输出结果如下图:



原因:

先在控制台看看是ajax先被打印还是你的undefined先被打印,如果是undefined先被打印,则可以参考以下原因与解决方案:

$.ajax默认是异步的, 异步回调在js主线程执行结束后才会被执行。所以先执行console.log(该变量),再执行ajax中的回调函数。所以后面的console.log执行时,该变量还没有被ajax赋值,所以是undefind。

解决方案:

如果确实需要获取ajax的结果赋值给该变量,那么可以ajax多加一个参数:async=false,就会同步执行。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: