【发布时间】:2015-11-13 10:02:35
【问题描述】:
我有一个用于身份验证的拦截器。
当我收到 401 响应错误时,我想从响应中获取标头。
拦截器是:
function ($httpProvider, fileUploadProvider) {
$httpProvider.interceptors.push(function($q, $localStorage) {
return {
'request': function(config) {
if ($localStorage.token) {
config.headers.Authorization = 'Bearer ' + $localStorage.token;
}
return config;
},
'responseError': function(response) {
if (response.status === 401) {
//$rootScope.$broadcast('unauthorized');
// WWW-Authenticate: Bearer error="invalid_token"
var authResult = response.headers('WWW-Authenticate');
if (authResult.indexOf("invalid_token")>-1) {
$localStorage.token = null;
$timeout(function(){
;
});
}
}
return response;
}
};
我想从响应中获取 WWW-Authenticate 标头。
我可以通过查看 Chrome 开发人员工具中的网络选项卡来确认标头是否在 Web 服务调用的响应中。如果我在响应处理程序函数中设置断点,然后在控制台中运行 console.log(response.headers()) 我得到:
Object {}
undefined
如何获取响应标头?
【问题讨论】:
标签: ajax angularjs restful-authentication