3

我有一个应用程序,它通过页面加载时的 $.ajax 调用检索一些页面数据(没有其他绑定,如“点击”等)。在一个场景中,当用户在响应到达之前重新加载页面(或导航到另一个页面)时,应用程序返回一个错误(错误事件ajaxError()被触发),状态码为 0。

当我做作业并阅读 SO(以及许多其他地方)时,我遇到了人们通过执行以下操作简单地忽略此类错误的帖子:

$(document).ajaxError(function(e, jqxhr, settings, exception) {  
  if (jqxhr.readyState == 0 || jqxhr.status == 0) {  
    return; //Skip this error  
  }  
});  

假设只有这种错误会被忽略,是否安全?是否会出现任何需要“特别注意”的负面情况?

还:

我发现了一些对类似问题的回复,指出“return false;” 或“preventDefault”解决了他们的问题。但在我的情况下,一切都发生在页面加载时,所以我不能“挂钩”任何提到的事件......或者我可以吗?

编辑:这里的另一个问题是:是否有任何其他方式来处理这些情况(ajax 请求被页面重新加载中断)?问题是我在一般 ajaxError 事件上绑定了错误报告,我想过滤掉这样的消息(或者甚至可能一开始就阻止它们发生)?

4

2 回答 2

1

针对您的问题“它是否安全”,我的回答是,是的,它是安全的。过去几个月我一直在使用它,它对我很有用。

但是,下面的 api 文档隐藏了有关错误对象的更多信息。我还没有迁移到 jQuery 1.9*,但它仍然很好。

更多信息: http ://api.jquery.com/jQuery.ajax/#jqXHR

于 2013-02-22T22:03:55.170 回答
1

这将忽略从 ajax 调用返回的所有错误。这是安全的:用户永远不会注意到发生了错误。很难在任何具体示例之外说,但是您的应用程序在执行失败的 AJAX 调用时可能会中断,除非每个处理程序都相应地处理错误。

于 2012-07-02T16:05:20.107 回答