首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角HttpInterceptor不改变标头

角HttpInterceptor不改变标头
EN

Stack Overflow用户
提问于 2017-09-26 05:53:01
回答 1查看 3K关注 0票数 4

我编写了一个角(4.3.6) HttpInterceptor来添加一些标头字段,但是如果我在调试器中检查这些字段,则不会更新标头。有什么想法吗?

代码语言:javascript
复制
import {Injectable} from '@angular/core';
import {HttpEvent, HttpInterceptor, HttpHandler, HttpRequest} from '@angular/common/http';
import {Observable} from 'rxjs/Observable';

@Injectable()
export class AuthInterceptor implements HttpInterceptor {


    intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

        console.log('AuthInterceptor at work');

        const contentTypeReq = req.clone({
            headers: req.headers.set('Content-Type', 'application/json')
        });

        const token  = localStorage.getItem('token');
        if (token) {
            const authReq = contentTypeReq.clone({
                headers: req.headers.set('Authorization', 'Bearer ' + token)
            });
            return next.handle(authReq);
        }

        // Pass on the cloned request instead of the original request.
        return next.handle(contentTypeReq);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-26 06:09:12

他们很懒。例如,方法看起来如下:

代码语言:javascript
复制
keys(): string[] {
    this.init(); <== initialize

    return Array.from(this.normalizedNames.values());
}

如果你想检查它们,只需打电话:

代码语言:javascript
复制
req.headers.keys()

如果要检查值,可以使用getgetAll方法:

代码语言:javascript
复制
req.headers.getAll('Content-Type')

或者您可以从控制台调用init方法,然后就可以在headers映射中看到标题。

此外,在角向请求添加标头中,它也使用了调用init方法的forEach方法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46418746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档