我试图通过jQuery Ajax加载文件。如果第一个位置失败,它应该尝试在另一个路径上检索它。这基本上有效,请求转到替代URL,但是我没有从loadFile()
延迟返回我需要进一步向下的jQuery。
如何让loadFile()
始终返回正确的延迟?
loadFile = function(url) {
return $.ajax({
url: u,
error: function() {
return $.ajax({
url: '/otherPath/' + u
});
}
});
};
loadFile('stats.xml').then(parseXml).then(...)
答案 0 :(得分:1)
尽管error:
内有第二个请求,但loadFile()
仍然会返回失败的初始Deferred()
。
为了能够将具有自己状态的Deferred链接起来,您将要使用.then()
:
loadFile = function(url) {
return $.ajax({
url: u
}).then(null, function() {
return $.ajax({
url: '/otherPath/' + u
});
});
};