jquery ajax中不能给变量赋值的原因及解决办法
发布日期:2021-05-08 03:02:39 浏览次数:24 分类:原创文章

本文共 529 字,大约阅读时间需要 1 分钟。

问题


我们在用JQuery的Ajax从后台提取数据后想把它赋值给全局变量,但是却怎么都赋不进,为什么呢?


原因


原因其实很简单,我们用的Ajax是异步操作,也就是async:true(默认情况),也就是说在你赋值的时候数据还没提取出来,你当然赋不进去,所以只要改成同步操作,即async:false就行~


解决方法


var result; $.ajax({
type :"post", url :地址, data :"参数"+参数的值, async :false, success :function(data){
//赋值给全局变量; result = data; }});

以上方法是ajax的同步调用,只有在获取到了data值并赋值给result以后才会返回result完成该方法的调用。若设为async:true,
则会未等到获取data值就已经返回了result。


另一个解决办法就是将你的代码直接写到success方法里。(但通常情况下并不是所有的业务逻辑都可以直接写到success里的)。


注意


如果设定为 async: false,就失去 ajax异步的优点了。

上一篇:Vue02ElementUI 布局,node.js 和npm 脚手架
下一篇:Vue01常见指令,axios

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月24日 18时22分39秒