我有一个应用程序,它通过页面加载上的$ .ajax调用检索一些页面数据(没有其他绑定,比如'click'等)。在一个场景中,当用户在响应到达之前重新加载页面(或导航到另一个页面)时,应用程序返回错误(触发错误事件ajaxError()),状态码为0。
当我做作业并阅读SO(以及许多其他地方)时,我遇到了一些帖子,人们通过以下方式忽略了这类错误:
$(document).ajaxError(function(e, jqxhr, settings, exception) {
if (jqxhr.readyState == 0 || jqxhr.status == 0) {
return; //Skip this error
}
});
假设只会忽略这种错误是否安全?是否会出现需要“特别关注”的任何负面情景?
ALSO:
我发现了一些类似问题的回复,声称“返回假”;或'preventDefault'解决了他们的问题。但在我的情况下,一切都发生在页面加载,所以我不能“挂钩”任何提到的事件......或者我可以吗?
编辑:此处的其他问题是:是否还有其他方法可以处理这些情况(ajax请求被页面重新加载中断)?问题是我在一般的ajaxError事件上绑定了错误报告,我想过滤掉这样的消息(或者甚至可能阻止它们首先发生)?
答案 0 :(得分:1)
这将忽略从ajax调用返回的所有错误。它是安全的:用户永远不会注意到错误发生。在任何具体的例子之外很难说,但是当你的AJAX调用失败时你的应用程序可能会中断,除非每个处理程序都按照处理错误。
答案 1 :(得分:1)
回答你的问题“是否安全”,我的回答是,是的,这是安全的。我过去几个月一直在使用它,它对我很有用。
但是,在api文档下面会隐藏有关错误对象的更多信息。我还没有转向jQuery 1.9 *,但它仍然很好。