gpt4 book ai didi

ajax - Angular 拦截器中的响应 header

转载 作者:行者123 更新时间:2023-12-02 04:47:01 26 4
gpt4 key购买 nike

我有一个用于身份验证的拦截器。

当我收到 401 响应错误时,我想从响应中获取 header 。

拦截器是:

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 header 。

我可以通过查看 Chrome 开发人员工具中的网络选项卡来确认 header 在 Web 服务调用的响应中。如果我在响应处理函数中设置一个断点,然后在控制台中运行 console.log(response.headers()) 我得到:

Object {}
undefined

如何获取响应 header ?

最佳答案

responseError 函数接收到rejection 而不是response。因此,如果您想访问响应 header ,则需要如下所示。

'responseError': function(rejection) {
if (rejection.status === 401) {
console.log(rejection.config.headers);
}
}

希望对您有所帮助。 :)

关于ajax - Angular 拦截器中的响应 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32106774/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com