我使用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?
}
};
});
答案 0 :(得分:1)
Chandermani在关于rejection.headers()
的评论中是正确的。实际问题出在服务器的Access-Control-Expose-Headers
标题中,不包括WWW-Authenticate。添加它解决了问题。