$ .ajax似乎没有调用错误:jQuery 2.x中的回调,例如由于页面重新加载。 太棒了! 但为什么?

我在jQuery 1.10.1中看到,如果在页面卸载时发生$.ajax请求(例如由于用户单击链接或重新加载页面),则会调用error: callback。

在jQuery 2.0.0或2.0.2中似乎不是这种情况。 这太棒了

至少在这里有7个问题,关于error:在导航时被调用。 例如, 当用户单击刷新时处理ajax错误

看到这个jsfiddle – 它开始运行1.10.1,但你可以在左边的控件中将它改为2.0.2。 实质上:

 $.ajax({ type: "POST", url: "/echo/json/", data: { json: JSON.stringify({ a: 23 }), delay: 30 }, cache: false, success: function (json) { $('#result').text(JSON.stringify(json)); }, error: function () { alert("error callback called"); } }); 

注意如何显示1.10.1的警报,但不显示2.0.2的警报。

但是,我没有在“jQuery 2.0发布”声明中看到任何相关内容。

我可以依赖于这个被修复/更改,还是这可能是依赖于浏览器的事故? 它似乎至少在Chromium和移动Safari(iPad)中得到了修复。

我正在寻找修复的来源,所以我可以看到我是否可以获得1.x来停止调用error handling程序或至少检测错误回调是否这是由于用户操作/导航。 特别是因为我到目前为止看到的最佳解决方案是使用beforeunload来检测error:时的页面卸载error:回调。 问题是, beforeunload在移动safari中不起作用 。

FWIW:我正在Ubuntu linux 12.04上测试。

编辑 :删除声称它也已修复为Firefox。 事实并非如此。