在responseError方法中访问响应头

时间:2014-12-12 04:14:32

标签: javascript angularjs

我使用HttpInterceptor处理对rest api的请求中的授权标头。这个想法是授权头被附加在拦截器的请求方法中,并且responseError会捕获授权失败。

在某些情况下,我需要根据服务器在WWW-Authenticate标头中回复的内容,使用新的授权标头重新发送请求。我无法弄清楚如何在responseError方法中访问该标头。

在代码中解释:

$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
  return {
    'request': function(config) {
      // do something on success
      return config;
    },
   'requestError': function(rejection) {
      // do something on error
      return $q.reject(rejection);
    },
    'response': function(response) {
      // do something on success
      return response;
    },
   'responseError': function(rejection) {
        // How can I access the WWW-Authenticate header from the response here?
    }
  };
});

1 个答案:

答案 0 :(得分:1)

Chandermani在关于rejection.headers()的评论中是正确的。实际问题出在服务器的Access-Control-Expose-Headers标题中,不包括WWW-Authenticate。添加它解决了问题。