Angular 5 HttpClient:如何将拦截器设置为仅通过 RegExp 过滤的 URL

菲拉斯库巴

在我的angular 5 应用程序下,我正在编写一个拦截器服务:

@Injectable()
export class myInterceptor implements HttpInterceptor {

  constructor() { }

  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    const tokenInHeader = req.clone({setHeaders: {'version': '1LF'}});
    return next.handle(tokenInHeader);
  }
}

这是将标题“版本附加到我所有的 http 请求的结果,这不是我想要的

我的目的是如何使用RegExp通过 url过滤我的 https 请求,并将“版本”标头仅附加到匹配的 url

像这样的事情:

request(new RegExp('^api/monitoring|^api/guiTrackers|^/api/monitoring|^/api/guiTrackers'))

建议??

只需使用 if 条件并在 false 时传递原始请求:

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

    if (new RegExp('^api/monitoring|^api/guiTrackers|^/api/monitoring|^/api/guiTrackers').test(req.url)) {
      const tokenInHeader = req.clone({ setHeaders: { 'version': '1LF' } });
      return next.handle(tokenInHeader);
    } else {
      return next.handle(req);
    }
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章