4

サーバーが 401 エラーを返した場合に、ユーザーをログイン ページにリダイレクトする単純なインターセプターを作成しました。ステータスが 404 に設定されているため機能していないため、 $location は呼び出されません。

.config( function myAppConfig( $stateProvider, $urlRouterProvider, $httpProvider ) {
    $urlRouterProvider.otherwise( '/login/authorize' );

    $httpProvider.interceptors.push(['$location', function($location) {
        return {
            responseError: function(rejection) {
                console.log(rejection);
                switch (rejection.status) {
                    case 401:
                        $location.path('/login/refresh');
                }
            }
        };
    }]);
})

ここに画像の説明を入力

4

1 に答える 1

3

これがあなたの状況@mikeに当てはまるかどうかはわかりません。実際にエラーコードを取得しているためです-正しいコードではありません...しかし、おそらく以下が関連しています...

@zszep と彼のステータス 0 の問題に関して、私もこの問題を抱えていました。ここで説明したように、CORS ヘッダーが存在しないサーバーからのエラー応答が原因である可能性が高いと思います - https://github.com/ angular/angular.js/issues/3336

これは私の場合でした-誰かに役立つ場合に備えて、ここに投稿したかっただけです。

于 2015-01-09T00:15:41.427 に答える