angularjs - Angularjs http拦截器导致没有路由发生
问题描述
我正在尝试添加一个 $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');
}]);
解决方案
因此,在拦截器中有一些 console.log() 看起来它确实进入了那里,但如果里面有任何错误,它不会报告任何内容。我有 getCurrentUser() 而不是 GetCurrentUser()。有点遗憾,没有错误能够回来,但现在可以正常工作了。
推荐阅读
- javascript - Discord.js 角色/分级系统
- c++ - 如何从 C++ 中的其他函数/方法调用运算符重载函数?
- excel - Excel VBA,列列表中包含“IS”和“S”的第一个单元格中的颜色
- ios - 是否可以仅将视图控制器的一部分嵌入容器视图中?
- python - 我想创建一个列表,将所有奇数替换为字符串
- bazel - 如何使用提供的工具而不是规则构建的工具来编写 Bazel 测试规则?
- amazon-web-services - AWS Amplify Appsync 在创建具有关系的对象时解决错误
- php - 在 laravel 的刀片中显示来自数据库的值
- java - 计数时间属性“ABC”值在集合中发生变化
- java - 打印输入正整数的公约数