昨天PP遇到一个问题,ajax修改全局变量后,外面获取不到ajax里赋的值,结果为空
问题代码如下图:
输出结果如下图:
原因:
先在控制台看看是ajax先被打印还是你的undefined先被打印,如果是undefined先被打印,则可以参考以下原因与解决方案:
$.ajax默认是异步的,异步回调在js主线程执行结束后才会被执行。所以先执行console.log(该变量),再执行ajax中的回调函数。所以后面的console.log执行时,该变量还没有被ajax赋值,所以是undefind。
解决方案:
如果确实需要获取ajax的结果赋值给该变量,那么可以ajax多加一个参数:async=false,就会同步执行。