var lng=0; $.ajax({ url: url, type: 'get', async:false, dataType: "jsonp", success: function(data){ lng = data.result.location.lng; alert("获取的数据是"+lng); } }); alert(lng);
问你是否有数据弹出,目的是为了证明您的代码是有问题的 script 加载 js 文档是异步的,这在你加载打文件时很容易观察到 ajax 使用了 XMLHttpRequest 组件,这个组件存在有 异步 和 同步 两种工作方式 有空是应该好好看看的
alert("获取的数据是"+lng); 这个弹出了吗? dataType: "jsonp" 实际执行的是 <script src=url></script> 与 $.ajax 的 type、async 属性无关 脚本加载总是异步的!
ajax是异步的,没有返回就执行外面的函数了,所以取不到值的,,你可以设置 async:true, 或者在 success里面调用执行,这个方法是普遍采用的方法
楼上补充的对,如果你是跨域的,使用jsonp , 同一个域的, 不要使用jsonp,使用json jsonp 需要一个回调函数的
87,992
社区成员
224,698
社区内容
加载中
试试用AI创作助手写篇文章吧