ajax获取的数据在函数外如何调用

mxw12 2016-04-09 01:01:00
 var lng=0;
$.ajax({
url: url,
type: 'get',
async:false,
dataType: "jsonp",
success: function(data){
lng = data.result.location.lng;
alert("获取的数据是"+lng);
}
});
alert(lng);


在ajax函数里面lng输出有值,但是在函数外lng恢复了初始值0,请问这种问题怎么解决?此处的lng是全局变量吗?本以为跟ajax的同异步处理有关,但是好像async的参数是true或者false结果都一样。求助各位大神~
...全文
4622 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
孟子E章 2016-04-09
  • 打赏
  • 举报
回复
楼上补充的对,如果你是跨域的,使用jsonp , 同一个域的, 不要使用jsonp,使用json jsonp 需要一个回调函数的
hch126163 2016-04-09
  • 打赏
  • 举报
回复
jsonp 是异步的 jsonp 不是ajax 是请求一个网址,响应回一个 函数调用 fun({});
孟子E章 2016-04-09
  • 打赏
  • 举报
回复
ajax是异步的,没有返回就执行外面的函数了,所以取不到值的,,你可以设置 async:true, 或者在 success里面调用执行,这个方法是普遍采用的方法
xuzuning 2016-04-09
  • 打赏
  • 举报
回复
有问题 漏了个字,不要太拘泥
mxw12 2016-04-09
  • 打赏
  • 举报
回复
引用 8 楼 xuzuning 的回复:
问你是否有数据弹出,目的是为了证明您的代码是有问题的 script 加载 js 文档是异步的,这在你加载打文件时很容易观察到 ajax 使用了 XMLHttpRequest 组件,这个组件存在有 异步 和 同步 两种工作方式 有空是应该好好看看的
数据弹出为什么有问题?弹出才对啊
xuzuning 2016-04-09
  • 打赏
  • 举报
回复
问你是否有数据弹出,目的是为了证明您的代码是有问题的 script 加载 js 文档是异步的,这在你加载打文件时很容易观察到 ajax 使用了 XMLHttpRequest 组件,这个组件存在有 异步 和 同步 两种工作方式 有空是应该好好看看的
mxw12 2016-04-09
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
alert("获取的数据是"+lng); 这个弹出了吗? dataType: "jsonp" 实际执行的是 <script src=url></script> 与 $.ajax 的 type、async 属性无关 脚本加载总是异步的!
这个数据弹出了呀,两种异步处理不很懂诶。。我找找资料看看。。
mxw12 2016-04-09
  • 打赏
  • 举报
回复
引用 1 楼 net_lover 的回复:
ajax是异步的,没有返回就执行外面的函数了,所以取不到值的,,你可以设置 async:true, 或者在 success里面调用执行,这个方法是普遍采用的方法
改成true没有用诶,但是我想要调用多个不同的网址,然后比较它返回的数据给出结果,这个功能能在前端做出来么。。?
mxw12 2016-04-09
  • 打赏
  • 举报
回复
引用 3 楼 net_lover 的回复:
楼上补充的对,如果你是跨域的,使用jsonp , 同一个域的, 不要使用jsonp,使用json jsonp 需要一个回调函数的
确实跨域了,必须要用jsonp诶。能在回调函数里面继续调ajax么?需要比较多个ajax获取的数据然后比较,有什么好的方法么。。
xuzuning 2016-04-09
  • 打赏
  • 举报
回复
alert("获取的数据是"+lng); 这个弹出了吗? dataType: "jsonp" 实际执行的是 <script src=url></script> 与 $.ajax 的 type、async 属性无关 脚本加载总是异步的!

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧