ajax请求体外不能获取请求结果内容

今晚在写Java EE的课设时,发现一个问题,Ajax作用域是怎么划分的?

在使用ajax发起请求时,ajax请求成功后的返回值,在ajax请求体之外是获取不到请求体内的参数的,如图所示:

ajax请求体的参数问题

在这的NumberRead理论上是被重新赋值了,应该是出现的新的值,可是在ajax请求体外的NumberRead拿不到新的值,后来发现了原因,需要在请求中加上禁止异步请求async: false,这样做的原因是因为,ajax请求和console.log(NumberRead)哪一句语句执行是未确定性的,只有禁止异步请求,才能保证语句时从上往下执行的。

正确示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var NumberRead = [60, 110, 180, 100,50,160,50,88];
$.ajax({
url:"/BlogDemo_war_exploded/EchartsServlet",
type:"post",
data:{},
async: false, //禁止异步请求
success: function (res) {
var obj = JSON.parse(res);
let ts=obj.data[0].replace("[","").replace("]","").split(",");
NumberRead = ts.map(Number); //重新定义NumberRead的值
},
error:function (data) {
}
})