header 没有在 angular $resource 上工作

header is not working on angular $resource

在我的 angular 应用程序 中,我想使用 angular custom header。我正在使用以下代码::

Angular工厂

angular.module('app').factory('UserAPI', ['$resource', 'session',   function($resource, session) {
   var mainUrl = 'http://localhost:8006/dev' + '/users';
   return {
      getService : function() {
        var token = session.getToken();
        console.log(token); //token is printed here
        return $resource(mainUrl, { }, {
           getData: {
                method: 'GET',
                url: mainUrl + '/:userId/dashboard',
                isArray: true,
                headers: { 'Token': token }
            }
         });
      }
   }
}]);

Angular 控制器

angular.module('app').controller('UserCtrl', ['$scope', 'UserAPI',  function($scope, UserAPI) {

    var user = UserAPI.getService();

    user.getData({ userId: 'some-user-id' }, {}, function(res) {

    }, function(err) {

    });
}]);

当我调用 user.getUser(......) 时,会生成一个 url,就像 GET:: http://localhost:8006/dev/user/some-user-id/dashboard 而不是 GET:: http://localhost:8006/dev/user/some-user-id/dashboard?token=SomeVeryLongToken,我的意思是 token 在 api 调用中丢失,虽然我使用的是 headers: { 'Token': token } 但仍然问题。

我该如何解决这个问题?

NB "angular": "^1.4.0", "angular-resource": "^1.4.0",

您正在将令牌作为请求 header 添加,而不是作为查询字符串中的 属性。使用第二个(在您的示例中为空)object 添加参数,或直接在您的控制器中添加它们:

user.getUser({token: 'sometoken'}, {}, function(res) {

}, function(err) {

});

headers: { 'Token': token }更改为params: { 'token': token }