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

Angular 5 HttpClient : how to set interceptor to only filtered URLs by RegExp

在我的angular 5 app下, 我正在写一个 拦截器 服务 :

@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);
  }
}

这是将 header "version" 附加到我所有的 http 请求的结果,这不是我想要的

我的目的是如何使用 RegExp filter 我的 https 请求 url ,并附上 "version" header 仅匹配 urls

像这样:

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);
    }
  }