我是角度js,loopback和nodejs的新手,
在角度应用程序中实现身份验证时,我收到以下提到的错误
Uncaught Error: [$injector:unpr] Unknown provider: sessionInjectorProvider <- sessionInjector <- $http <- $compile
我正在阅读这份文件,但没有任何帮助。 http://www.webdeveasy.com/interceptors-in-angularjs-and-useful-examples/
当我为sessionInjector
添加以下行时出现此错误angular.module('myApp', []).factory('sessionInjectorProvider', ['SessionService', function(SessionService) {
var sessionInjector = {
request: function(config) {
if (!SessionService.isAnonymus) {
config.headers['x-session-token'] = SessionService.token;
}
return config;
}
};
return sessionInjector;
}]);
angular.module('myApp', []).config(['$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push('sessionInjector');
}]);
答案 0 :(得分:0)
您的代码中肯定至少有两个错误:
angular.module('myApp', [])
创建一个模块,而angular.module('myApp')
调用模块。这意味着在代码结束时,您将再次创建模块,从而失去之前编写的内容。
格式化此代码的方法有多种,解决问题的方法有:
angular.module('myApp', [])
.factory('sessionInjectorProvider', ['SessionService', function(SessionService) {
var sessionInjector = {
request: function(config) {
if (!SessionService.isAnonymus) {
config.headers['x-session-token'] = SessionService.token;
}
return config;
}
};
return sessionInjector;
}])
.config(['$httpProvider', function($httpProvider) {
$httpProvider.interceptors.push('sessionInjectorProvider');
}]);
另外,如前所述,你正在混合'sessionInjectorProvider'和'sessionInjector' - 你的拦截器应该使用'sessionInjectorProvider',如我上面发布的代码所示。