在下面的代码示例中:
myApp.config(['$httpProvider', function($httpProvider, $cookieStore) {
$httpProvider.defaults.withCredentials = true;
$httpProvider.defaults.headers.get['Authorization'] = 'Basic '+ $cookieStore.get('myToken');
return JSON.stringify(data);
}]);
我收到一个像“Unknown provider $cookieStore”这样的 angularjs 错误。
“myApp”有依赖项,“ngCookies”和 angular-cookies.min.js 已加载,那么该代码有什么问题?
我在 .config 中这样做是事实吗?
最佳答案
因为它只能在配置时传递提供者,所以我最终完成了我的 http 参数的覆盖,而不是使用请求转换器,而是通过创建一个服务作为工厂来执行请求。
这是该服务的代码示例(未经测试,仅供引用):
angular.module('myapp-http-request', []);
angular.module('myapp-http-request')
.factory('MyRequests', function($http, $cookieStore){
return {
request: function(method, url, data, okCallback, koCallback){
$http({
method: method,
url: url,
data: data
}).success(okCallback).error(koCallback);
},
authentifiedRequest: function(method, url, data, okCallback, koCallback){
$http({
method: method,
url: url,
data: data,
headers: {'Authorization': $cookieStore.get('token')}
}).success(okCallback).error(koCallback);
}
}
});
和使用示例(未测试,仅供引用):
angular.module('sharewebapp', ['myapp-http-request'])
.controller('MyController', ['MyRequests', function(MyRequests){
MyRequests.authentifiedRequest('DELETE', '/logout', '', function(){alert('logged-out');}, function(){alert('error');})
}]);
关于http - AngularJS - 未知提供者配置 $httpProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17315915/