我有一个应用程序,通过$ .ajax调用页面加载(没有其他绑定,如'点击'等)调用一些页面数据。在情景中,当用户在响应到达之前重新加载页面(或导航到另一个页面)时,应用程序返回状态码为0的错误(触发错误事件ajaxError())。Ajax状态代码0在页面重新加载
当我正在做作业并阅读时SO(和许多其他地方),我碰到那里的人根本做忽略了这种错误的帖子下面传来:
$(document).ajaxError(function(e, jqxhr, settings, exception) {
if (jqxhr.readyState == 0 || jqxhr.status == 0) {
return; //Skip this error
}
});
它是安全的假定只有这种错误会被忽略?是否会出现需要“特别关注”的消极情景?
ALSO:
我发现了一些答复指出,把类似的问题“返回false;”或'preventDefault'解决了他们的问题。但在我的情况下,一切都发生在页面加载,所以我不能'钩'上述任何事件......或者我可以吗?
编辑:这里的另一个问题是:有没有其他方式来处理这些情况(ajax请求被页面重新加载中断)?问题是我在一般的ajaxError事件上绑定了错误报告,我想过滤掉这样的消息(或者甚至可能阻止它们发生在第一位)?
在哪里你见过吗? “0”甚至不是有效的状态码。 – WhyNotHugo
状态码0表示jqxhr对象未初始化。如果我将_console.log(jqxhr.status); _放入_.ajaxError_事件(如上所述)并多次重新加载页面(在响应之前中断请求),我可以看到此代码。 – Spartak