如何在angularjs资源中传递标头值

时间:2016-05-20 17:59:12

标签: angularjs

我在我的资源中定义自定义post方法。其中一个帖子需要标题。我只想从控制器动态设置标头值。书面代码不起作用。它没有设置标题

服务

return $resource(Config.getURL() + '/api/:request/', {
        request: '@request'
    },
    {
      getmylocation:{
        method:'GET',
        params:{
          request:'getmylocation'
        },
        headers:{
          'token':token
      }

    });

控制器

var token ="ad234saf3dsf32442werw"
apiService.getmylocation(token)

1 个答案:

答案 0 :(得分:0)

我会创建一个拦截请求的服务,并添加带有令牌的标头,如下所示:

angular.module('common').factory('xsrfTokenInterceptor', function(principal, $location) {
    return {
        'request': function(config) {
            //principal is the service that stores my user information and his token
            var identity = principal.identity();
            if (identity !== "undefined" && identity !== undefined && identity !== null) {
                var sessionToken = identity.session;

                if (sessionToken !== "undefined" && sessionToken !== undefined) {
                    config.headers['X-Csrf-Token'] = sessionToken;
                }
                return;
            } else{
              $location.url('/signin');
               }
            return;

        }
    };
});

我希望这会有所帮助