Javascript 使用transformRequest添加授权标头

Javascript 使用transformRequest添加授权标头,javascript,angularjs,Javascript,Angularjs,这应该很容易,但最终不起作用:(。 我们使用Angular 1.4.3,并尝试在一些API调用之前添加授权头值 长话短说,这里有一个工厂: angular.module('xxx').factory('factory', function ($resource, addBasicAuth) { return $resource(baseUrl, {}, { query: {method: 'GET', isArray: true, transformRequest: addBa

这应该很容易,但最终不起作用:(。 我们使用Angular 1.4.3,并尝试在一些API调用之前添加授权头值

长话短说,这里有一个工厂:

angular.module('xxx').factory('factory', function ($resource, addBasicAuth) {
   return $resource(baseUrl, {}, {
      query: {method: 'GET', isArray: true, transformRequest: addBasicAuth},
      ...
   });
});
addBasicAuth
如下所示:

angular.module('xxx').factory('addBasicAuth', function ($rootScope) {
    return function (data, headersGetter) {
        var user = ($rootScope.user);
        headersGetter().Authorization = 'Basic ' + Base64.encode(user.username + ':' + user.password);
        return angular.toJson(data);
    };
});
理论上,所有这些都应该可以正常工作,但由于我不理解的原因,requestHeader没有被触及(在开发者工具/Network-Chrome中检查)


我做错了什么?谢谢!

我的同事帮我解决了以下问题:

我们使用
标题来代替
transformRequest
,如下所示:

angular.module('xxx').factory('factory', function ($resource, addBasicAuth) {
   return $resource(baseUrl, {}, {
      query: {
         method: 'GET',
         isArray: true,
         headers: addBasicAuth()
      },
      ...
   });
});
addBasicAuth
现在是一个出厂功能:

angular.module('xxx').factory('addBasicAuth', function ($rootScope) {
   return function () {
      var user = ($rootScope.user);
      return {'Authorization': 'Basic ' + Base64.encode(user.username + ':' + user.password)};
   };
});

很有魅力。

这不管用。看看