AJAX获取数据后,成功方法里的返回数据如何声明成全局变量

black_OX 2014-02-14 10:07:01

var token = '';
$.ajax({
url : 'getToken.php',
data : {userId : params.userId, type : params.type},
dataType : "json",
type : "POST",
}).done(function(data) {
ret = $.parseJSON(data);
token = ret.data.token;
alert(token); // 这个有数据
});
alert(token); // 这个是空, 而我需要的就是在外面操作这个数据


在上面用window.token也是过了, 不行. 求指点.
...全文
9235 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_21786517 2015-12-08
  • 打赏
  • 举报
回复
解决没有啊 同问
螃蟹哥哥 2014-02-14
  • 打赏
  • 举报
回复
引用 2 楼 yyl8781697 的回复:
你这里写的ajax是异步请求,即javascript是非阻塞运行的,在$.ajax还没运行完alert命名可能就执行了,当然这二个时候是没有数据的 把你的ajax设置为同步请求就可以了,设置$.ajax的async属性为false就可以了
同楼上
yyl8781697 2014-02-14
  • 打赏
  • 举报
回复
你这里写的ajax是异步请求,即javascript是非阻塞运行的,在$.ajax还没运行完alert命名可能就执行了,当然这二个时候是没有数据的 把你的ajax设置为同步请求就可以了,设置$.ajax的async属性为false就可以了
似梦飞花 2014-02-14
  • 打赏
  • 举报
回复
你alert的时候ajax还不一定返回数据了呢 用window.setInterval定时的去检测这个数据有没有 有的话alert 或者放在ajax的回调里
jeff_jiang 2014-02-14
  • 打赏
  • 举报
回复
可以使用楼上说的阻塞方式, 但是回调函数应该更加适合使用,也更合理。 [code=javascript]var token = ''; var callback = function(){ alert(token); } $.ajax({ url : 'getToken.php', data : {userId : params.userId, type : params.type}, dataType : "json", type : "POST", }).done(function(data) { ret = $.parseJSON(data); token = ret.data.token; alert(token); // 这个有数据 callback();//调用回调函数。 });

87,997

社区成员

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

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