Angular 5 HttpClient: как установить перехватчик только для отфильтрованных URL по RegExp - PullRequest
0 голосов
/ 01 июня 2018

Под моим угловым 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-запросам, а это не то, что я хочу

Моя цель - как я могу фильтровать мой https-запрос по URL с RegExp , иприкрепить заголовок "version" только к соответствующим URL-адресам

Примерно так:

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

Предложения ??

1 Ответ

0 голосов
/ 01 июня 2018

просто используйте условие 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);
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...