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.js/issues/3336

对我来说就是这种情况 - 只是想在这里发布它以防它帮助任何人。

于 2015-01-09T00:15:41.427 回答