Hey Im目前正尝试使用延迟的when和done函数进行多个ajax请求调用。但是,在一些请求中我得到解析错误:readyState“:4,”status“:200,”statusText“:”load“。
我试图查看与我的问题类似的其他问题,并尝试过各种方式的调试,但都做得不够。
这是我的ajax请求电话:
$.ajax({
'url' : message.action,
'data' : parameterMap,
'dataType' : 'jsonp',
'async' : 'true',
'jsonpCallback' : 'cb',
'cache': true
})
.done(function(data,textStatus, jqXHR) {
console.log("Success: " + textStatus);
//inserting data to map
var mapIndex = i.toString();
yelpResults = yelpResults.set(mapIndex, JSON.stringify(jqXHR));
}) //end of done
.fail(function(jqXHR, textStatus, errorThrown) {
console.log('error[' + errorThrown + '], status[' + textStatus + '], jqXHR[]');
})
);
将ajax请求推送到列表中,该列表将返回并在此函数中使用:
var generateBusiness = function(term,subPointResults){
var promises = yelpSearch(term, subPointResults);
console.log("Generate business is being called");
$.when.apply(null, promises).done(function(){
// call
console.log("All requests done");
// findPriorityResuts(subPointResults);
yelpRequestCounter = 0;
});
}
我总共发出10个请求,其中大约5个成功加载,其他请求因解析错误而失败。
任何建议将不胜感激! :)
编辑:我有这个工作,就每个请求被成功解析而言,但是我以1秒的间隔调用每个请求。并希望找到一种不同的,平行的方式。所以我知道它不是即将发布的数据。
谢谢!
答案 0 :(得分:1)
由于jsonp请求实际上是脚本请求,而不是ajax请求,因此对多个请求使用相同的回调并不好。
删除router-outlet
并让jQuery动态创建,并且重要的是,跟踪唯一的回调