[英]Handle ajax errors and execute the promise chain
我正在尝试为失败的 ajax 请求提供后备。 我想要一个全局解决方案,这样我就不必更改代码中的每个调用。
我尝试为ajaxSetup
提供error
处理程序,但问题是我无法执行链接的回调。
$.ajaxSetup({ error: function() { console.error('Error occurred') return $.getJSON('https://jsonplaceholder.typicode.com/todos/1') } }) $.getJSON('https://jsonplaceholder.typicode.com/todos/0') // Id doesn't exist .then(todo => console.log(todo))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Error occurred
{
"id": 1,
"title": "...",
...
}
从 jQuery 3.0 开始,接受的回调方法是:done、always、fail。 所以,我会调用回调失败,在内部,我重新发送包装成具有动态 id 的正确函数的 ajax 调用
const submit = (id) => {
const xhr = $.getJSON(`https://jsonplaceholder.typicode.com/todos/${id}`)
.done(todo => console.log(todo))
.fail(err => { console.error(err); submit(id++); });
};
submit(0);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.