2

jQuery$.ajax呼び出しの場合:

次のようなグローバルエラーハンドラーが必要です。

    $(document).ajaxError(function (e, jqxhr, settings, exception) {
        window.location = '/Error/ServerError';
    });

しかし...呼び出しのerrorメソッド$.ajaxが定義されていない場合にのみ、これを実行したい。それらが明示的に定義されていないかどうかはわかりますが、それらは匿名メソッドですが、メソッドが匿名か名前付きかを確認する方法がわかりません。

したがって、このような場合、グローバル ハンドラを呼び出したくありません。

$.ajax({
    url: "url",
    type: "POST",
    success: function(data) {
        //do something
    },
    error: function(jqXHR, textStatus, errorThrown) {
        ShowError("Error", errorThrown);
    }
});

しかし、この呼び出しでは、グローバル ハンドラーを呼び出して、ページをリダイレクトしたいと思います。

$.ajax({
    url: "url",
    type: "POST",
    success: function(data) {
        //do something
    }
});
4

1 に答える 1

5

フィールドが定義されsettingsているかどうかに関係なく、グローバルハンドラーでパラメーターを確認できます。error

$(document).ajaxError(function (e, jqxhr, settings, exception) {
    if ( settings.error )
        return;
    window.location = '/Error/ServerError';
});

jsFiddleでの作業例

于 2012-07-10T13:33:23.490 に答える