3

私は$.ajaxSetup自分のサイトでグローバルな認証方法とグローバルなエラー処理を使用することに慣れています。コールバック関数をグローバル エラー メソッドに渡したいので、グローバル エラー ハンドラで必要なときにいつでも関数を呼び出すことができます。これが私のもの$.ajaxSetupです:

    $.ajaxSetup({
       global: false,
       // type: "POST",
        beforeSend: function (xhr) {
            //The string needs to be turned into 'this.pasToken'
            //if not us, don't include
            if(app.cookieAuth)
                xhr.setRequestHeader("Authorization", _this.pasToken);
        },
        statusCode: {
            401: function(){
                //Redirect to the login window if the user is unauthorized
                window.location.href = app.loginUrl;
            },
            //This is where I need help
            403: function(error, callback){
                //Show an error message if permission isn't granted
                callback(error);
                alert(JSON.parse(error.responseText)['Message']);
            }
        }
     });

403:ステータス コードに注意してください。ajaxコールバック関数を渡そうとしていますが、個々の呼び出しからそれを行う方法がわかりません。誰にもアイデアがありますか?

4

2 に答える 2

7

最も簡単な解決策; ajax オプションの独自のプロパティを定義します。

$.ajaxSetup({
    statusCode: {
        403: function(error, callback){
            this.callback403(error);
        }
    }
});

$.ajax({
    callback403: function () {}
});

contextajax リクエストのオプションを変更すると、これが機能しない可能性があることに注意してください。

于 2013-04-08T14:09:05.630 に答える
-1

これがあなたが探しているものかどうかわかりません:

$.ajax({
    statusCode: {
       404: function() {
     alert("page not found");
    }
   }
   });
于 2013-04-08T14:05:44.867 に答える