Angular 4拦截器未设置标头

时间:2018-01-12 00:32:27

标签: angular http typescript cors

出于某种原因,我的http请求中的标题未被发送。

我正在使用一个具有以下代码的拦截器。

    @Injectable()
export class AuthInterceptor implements HttpInterceptor {
  constructor() {}
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

      const token: string = localStorage.getItem('token');

      if (token) {
          req = req.clone({ headers: req.headers.set('Authorization', 'Bearer ' + token) });

    return next.handle(req);
  }
}

在api上看到收到的标题后,没有授权标题。

我不知道我在API方面做错了什么。我有以下的cors配置。

module.exports = (req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type,Authorization');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
};

我提前感谢你。

1 个答案:

答案 0 :(得分:0)

我设置了这样的授权标头:

  @Injectable()
    export class AuthInterceptor implements HttpInterceptor {
        constructor() { }
        intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

            const token: string = localStorage.getItem('token');

            if (token) {
                req = req.clone({ setHeaders: { Authorization: `Bearer ${token}` } });

                return next.handle(req);
            }
        }