一尘不染

AngularJS-配置$ httpProvider的未知提供程序

angularjs

在以下代码示例中:

myApp.config(['$httpProvider', function($httpProvider, $cookieStore) {

    $httpProvider.defaults.withCredentials = true;

    $httpProvider.defaults.headers.get['Authorization'] = 'Basic '+ $cookieStore.get('myToken');

    return JSON.stringify(data);

}]);

我收到类似“未知提供者$ cookieStore”的angularjs错误。

“ myApp”具有Dependenciy和“ ngCookies”,并且对angular-cookies.min.js进行了评分,那么该代码有什么问题?

那是我在.config中执行此操作的事实吗?


阅读 293

收藏
2020-07-04

共1个答案

一尘不染

因为只能在配置时传递提供程序,所以我最终没有通过请求转换器而是通过将服务创建为工厂来执行请求来覆盖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');})
}]);
2020-07-04