jquery getJSON方法返回值

jquery getJSON方法返回值,第1张

jquery 的getJson也是ajax请求,ajax请求默认是异步请求,就是不需要等数据返回,就会执行后面的数据。

所以,你外面的变量赋值,还没有等请求值返回,就已经执行了。

你只需要在getJSON请求之前,设置同步请求就行了:$.ajaxSettings.async = false

要回答这问题,首先要理解ajax是异步访问的,所谓异步,类似于多线程,js解释器执行到ajax的时候,并不会等待返回结果以及回调函数都执行完了过后才执行下一条语句(在这里就是alert语句),而是在调用ajax过后就直接执行alert(obj)了,在执行alert的时候,ajax的回调函数还没执行,因为网络传输需要时间,执行结果还没返回。解决方法是不用$.getJSON,而用$.ajax,设置async=false,改异步为同步,这样代码就会顺序执行了。或者把alert写到ajax回调函数中(也是使用ajax的时候常用的方式,推荐)。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/7890181.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存