jquery ajax中不能给变量赋值的原因及解决办法

jquery ajax中不能给变量赋值的原因及解决办法
强烈推介IDEA2020.2破解激活,IntelliJ IDEA 注册码,2020.2 IDEA 激活码

问题

我们在用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异步的优点了。

本文来源MrKorbin,由架构君转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处:https://javajgs.com/archives/25317

发表评论