javascript - 在 Firefox 中加载新页面时如何防止未完成的 jquery ajax 事件抛出错误

标签 javascript jquery ajax firefox xmlhttprequest

如果我有等待服务器响应的未完成的 jQuery $.ajax 事件,它们都会在加载新页面时抛出错误(例如,通过用户单击 href)。这似乎是 Firefox 8 及更高版本中的新行为。

奇怪的是,当前页面的 JavaScript 似乎在加载新页面时继续运行。因此,当错误被触发时,我想检测到它是一个特殊情况,一个“因为在等待 Ajax 响应时加载了新页面而中止”类型的错误并将其吞下。

问题是通过 ajax 错误事件 jqXHR 或 textStatus、errorThrown 返回的所有属性都没有返回“错误”以外的任何信息。

那么如何检测这种特定的错误类型呢?或者我如何检测 Firefox 已开始加载新页面,以便我可以忽略该错误?

最佳答案

您可以使用 jQuery unload method为此:

$(window).unload(function() {
   // setIgnoreErrorFlag / cancel outstanding requests etc
});

关于javascript - 在 Firefox 中加载新页面时如何防止未完成的 jquery ajax 事件抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8591935/

相关文章:

javascript - Onleftclick 和 onrightClick Javascript 函数

javascript - 如何在响应中将 div 移动到另一个 in 中?

jquery - 当我单击按钮时,内容首先出现,然后消失。为什么?我该如何修复它?

javascript - 使用 JQuery 通过 Ajax 请求时未下载文件

javascript - Angular Ajax 请求发送对象

javascript - 从页面中删除脚本元素及其 Action /事件

javascript - ReactJS 将 fetch 的输出保存到 var?

javascript - 循环通过 api 请求时插入失败仅执行第一个查询

javascript - 三个 js 通过 GUI 防止光线转换拾取

javascript - 将对象的 Id 设置为数据库中的下一个可用行?