ajax请求获取的数据无法赋值给全局变量问题总结

时间:2024-07-30 19:07:20

一、总结:

1.问题描述:

今天做项目遇到在用表单显示详细信息的过程中ajax请求获取的数据无法赋值给全局变量的情况,从列表页面进入详情页,在详情页面被渲染了之后就会调用js文件里的接口向服务器请求数据,除了详情页面被加载之后需要向服务器发送ajax请求,在详情页面还有几个表单控件的属性需要去请求服务器获取实际项目中要求要显示的数据。

如下代码,直接在ajax请求中改变表单控件的值,避开了给全局变量赋值。

ajax请求获取的数据无法赋值给全局变量问题总结

ajax请求获取的数据无法赋值给全局变量问题总结

给全局变量赋值的解决办法,给ajax请求设置async为false,表示请求为同步请求:

ajax请求获取的数据无法赋值给全局变量问题总结

ajax请求获取的数据无法赋值给全局变量问题总结

异步请求不会阻塞代码的执行,程序从上往下执行,同步请求必须等前面的代码执行完后面的代码才能执行。所以,ajax请求的数据不能赋值给全局变量(赋值之后全局变量没有值),是因为ajax请求还没有执行完后面的代码就执行了。将ajax请求设置成同步请求,保证ajax请求执行完了再给全局变量赋值。