ajax 同步请求,获取的json数据为空,但是用了setTimeout,就有数据了,为什么呢??

shx0713 2014-10-21 07:37:02
function load(src){
$.ajax({
async: false,
url: src,
type: "GET",
dataType:"json",
success: function(data){
var length = data.length;
for(var i = 0; i < length; i++)
{
var name = data[i].name;
var line = data[i].line;
var center = data[i].center;
}
},
error: function(XMLHttpRequest,textStatus,errorThrown){
alert(src+" XMLHttpRequest.status="+XMLHttpRequest.status+
" XMLHttpRequest.readyState="+XMLHttpRequest.readyState+
" textStatus="+textStatus);
},
});
}

function ff(){
//load(url);
setTimeout(function(){load},1000); //如果直接load,取出的data为空,所以会出现parserError的错误。而用了setTimeout,data就有数据了。。。。为什么呢????
}


我的问题有两个:1.为什么用了setTImeout就能取到数据呢?如果我不想用setTimeout,而且依然是同步请求,该怎样做呢??
...全文
246 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
纯冰糖 2014-10-23
  • 打赏
  • 举报
回复
后台运行时间长,前台处于等待状态,在Extjs中一般加个带进度条的对话框等待后台处理完成返回给前台
顾小林 2014-10-23
  • 打赏
  • 举报
回复
是否可以这样测试, 有timeout的时候获取到数据的时间?time1 没有timeout的话 在error里面添加log 并 记录 error执行时间 time2,time2是否小于tim1
csucaicai 2014-10-22
  • 打赏
  • 举报
回复
你的代码有么有调用啊。。。。。。。。
shx0713 2014-10-21
  • 打赏
  • 举报
回复
我这段js如果放在chrome浏览器中执行,是不需要setTimeout的,但是放在Qt中,就需要了。。。不懂!!求指教啊!!
slwsss 2014-10-21
  • 打赏
  • 举报
回复
脚本没问题啊 function load(src){var d; $.ajax({ async: false, url: src, type: "GET", dataType:"json", success: function(data){ d=data }, error: function(XMLHttpRequest,textStatus,errorThrown){ alert(src+" XMLHttpRequest.status="+XMLHttpRequest.status+ " XMLHttpRequest.readyState="+XMLHttpRequest.readyState+ " textStatus="+textStatus); }, });return d; } alert(load(url))

87,907

社区成员

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

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