在拦截器.module.ts

时间:2019-05-31 12:53:30

标签: angular typescript http header

我需要在每个请求的标头中发送一个授权令牌,但是我找不到找到将参数设置到intercepetor.module.ts代码中的正确方法。

这是我的Angular Interceptor.module.ts的摘录

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

        console.warn("Loader Started - HTTP request: " + req.url);

        let dupReq = req.clone({
            setHeaders:{
                'Content-Type' : 'application/json',
                'Accept'       : 'application/json',
                'Authorization': "Basic "+ myToken
            }
        });

        return next.handle(dupReq).pipe(
            map(event => {
                return event;
            }),
            catchError(error => {
                return Observable.throw(error);
            }),
            finalize(() => {

            })
        );
    }

当我在调试模式下进入Chrome的“网络”标签时,请求的标头没有变化,并且没有显示“授权”参数。

我尝试通过headers.append()方法设置标头,它也没有区别。

3 个答案:

答案 0 :(得分:1)

您可以尝试此操作,因为您需要Basic授权:

const httpOptions = {
    headers: new HttpHeaders({ 
        'Content-Type': 'application/json',
        'Authorization': 'Basic ' + btoa(myToken)
    })
};

答案 1 :(得分:0)

尝试一下:

const dupReq = req.clone({
    setHeaders: {
      Authorization: "Basic "+ btoa(myToken),
      'Access-Control-Allow-Origin': '*'
    },
  })

答案 2 :(得分:0)

request.clone({
     setHeaders: {
       'Authorization': `Basic ${myToken}`
     }
   });