我唯一想到的就是绑定这样的error
事件:
$(window).error(function(e){
if ($.active > 0) {
// your error handling
}
});
$.active
显示活动 Ajax 请求的数量,因此即使请求返回成功但undefined.something
成功处理程序中有问题也会触发错误。
演示:http: //jsfiddle.net/KWX4k/
更新:我的 DEMO 测试用例
I. 成功处理程序中存在问题的有效 Ajax 请求:
$.get("/", function() {
undefined.something
});
结果
:着火了!
二、在成功处理程序中没有问题的无效 Ajax 请求:
$.get("http://www.google.com/", function() {
// undefined.something
});
结果:不开火。
三、代码中的简单未定义错误:
undefined.something
结果:不开火。
所以,它似乎正在工作:)
但是,在这种方法中,我看到了一个小缺点。由于 Ajax 通常以异步方式使用,如果您有两个错误,事件将触发两次 - 在 Ajax 处理程序和调用此 Ajax 请求的方法中(即在调用 Ajax 之后立即放置)。但是,这种情况并不重要,因为 Ajax 请求之后的所有操作通常都转移到 Ajax 成功处理程序。