私の頭に浮かぶ唯一のことは、そのような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
});
結果:発火しません。
III. コード内の単純な未定義エラー:
undefined.something
結果:発火しません。
だから、それは働いているようです:)
ただし、この方法には小さな欠点があります。Ajax は通常非同期で使用されるため、Ajax ハンドラーとこの Ajax リクエストを呼び出すメソッド (つまり、Ajax を呼び出した直後に置かれる) に 2 つのエラーがある場合、イベントは 2 回発生します。ただし、Ajax リクエスト後のすべてのアクションは通常、Ajax 成功ハンドラーに転送されるため、このような状況は重要ではありません。