0

サーバーへのリクエストから、401エラーが返されます。

これを処理して、ユーザーを適切にリダイレクトしたいと思います。

最初は、ajaxSetupを使用してエラーをキャプチャして処理しようとしましたが、これはヒットしません。

次に、ajaxErrorメソッドを使用するように変更しました。これは機能します。

ajaxSetupを使用すると、エラーメソッドがヒットしないのはなぜですか?

これは機能します:

$("body").ajaxError(
                function (e, request) {
                    if (request.status == 401) {
                        alert("Your session has expired. Please login again to continue.");
                        window.location = "/admin/account/logon";
                    }
                }
            );

しかし、これは機能しません:

$.ajaxSetup({
        cache: false,
        error: function (jqXHR, textStatus, errorThrow) {
            if (jqXHR.status == 401) {
                alert("Your session has expired. Please login again to continue.");
                window.location = "/admin/account/logon";
            }
        }
    });

Jquery Unobtrusive Ajaxを使用してトリガーされ、リンクは次のようになります。

<a title="Delete this comment" class="close " data-ajax="true" data-ajax-confirm="Are you sure you want to delete this comment?" data-ajax-method="POST" data-ajax-mode="replace" data-ajax-update="#Comments" href="/myurl">×</a>
4

1 に答える 1

3

ドキュメントから

Note: 
Global callback functions should be set with their respective global Ajax event handler methods—
.ajaxStart(),
 .ajaxStop(),
 .ajaxComplete(),
 .ajaxError(),
 .ajaxSuccess(),
 .ajaxSend()

—rather than within the options object for $.ajaxSetup().
于 2013-03-15T04:35:29.927 に答える