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);
}
}
在我的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);
}
}