AngularJS HTTP拦截器导致没有路由发生

时间:2019-02-07 01:37:38

标签: angularjs

我正在尝试添加$ http拦截器,以便可以添加Authorization标头,但是当我添加它时,所有路由都会停止工作,但不会引发任何错误。

app.service('APIInterceptor', ['userService', function (userService) {
    this.request = function (config) {
        var currentUser = userService.getCurrentUser();
        if (currentUser) {
            config.headers['Authorization'] = "Bearer " + currentUser.access_token;
        }

        return config;
    }
}]);

app.config(['$routeProvider', '$locationProvider', '$httpProvider', function ($routeProvider, $locationProvider, $httpProvider) {
    $routeProvider
        .when("/login", {
            templateUrl: 'Views/login.html?' + $.now(),
            controller: 'loginController',
            controllerAs: 'vm'
        })
        .when("/", {
            templateUrl: 'Views/home.html?' + $.now(),
            controller: 'homeController',
            controllerAs: 'vm'
        });

    // when I comment out the below the routing works
    // with this line in all routing stops working
    $httpProvider.interceptors.push('APIInterceptor');
}]);

1 个答案:

答案 0 :(得分:0)

因此,在拦截器内部有一些console.log(),它看起来确实可以进入其中,但是如果内部有任何错误,它不会报告任何内容。我有getCurrentUser()而不是GetCurrentUser()。真是令人um目结舌,没有错误能够再次出现,但现在可以正常工作了。