gpt4 book ai didi

angular - 请求 header 未从拦截器 Angular 2/4(401 处理)成功更新

转载 作者:太空狗 更新时间:2023-10-29 17:40:23 24 4
gpt4 key购买 nike

我正在使用 Http 拦截器并尝试重试失败的请求以处理 401 错误。我正在尝试设置一个新 header 来更新请求,但它不起作用。

我注意到我的 header 没有随请求一起设置,而是转到 header 内的 lazyUpdates。谁能告诉我为什么会这样。检查我的网络后,我发现重试请求传递了旧 header ,即 'x-auth-token' 并且未发送新 header 。

拦截器.ts

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
request = request.clone({
setHeaders: {
'x-auth-token': this.authService.getToken()
}
});

return next.handle(request).do(event => {}, err => {
if (err instanceof HttpErrorResponse && err.status == 401) {

request = request.clone({
setHeaders: {
'Content-Type': 'application/json',
'Authorization': 'sample-auth'
}
});

return next.handle(request)
}
});
}

在延迟加载中包含值而不是 header 的 header :

Here is the header that is being sent with the request

我已经完成了这个 link

有什么想法吗?

我仍然有同样的问题。谁能建议我如何正确更新 header 。

最佳答案

我认为问题在于请求的克隆。你需要做这样的事情。

request = request.clone({
headers: request.headers.set("Authorization", `sample-auth`)
});

关于angular - 请求 header 未从拦截器 Angular 2/4(401 处理)成功更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48200491/

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