我正在尝试通过 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(...)
最佳答案
尽管 error:
内有第二个请求, loadFile()
仍然返回初始 Deferred()
这将会失败。
为了能够链接具有自己状态的 Deferred,您需要使用 .then()
:
loadFile = function(url) {
return $.ajax({
url: u
}).then(null, function() {
return $.ajax({
url: '/otherPath/' + u
});
});
};
关于javascript - 从 Ajax 调用中的错误 block 返回延迟的 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24329330/