Невозможно указать перехватчик только для определенных маршрутов и / или модулей.
Однако вы можете добавить значение заголовка http, которое пропускает применение перехватчика для этого запроса. Например:
import { HttpHeaders } from '@angular/common/http';
export const InterceptorSkip = 'X-Skip-Interceptor';
export const InterceptorSkipHeader = new HttpHeaders({
'X-Skip-Interceptor': ''
});
тогда в моем Перехватчике обработчика ошибок, если применяется заголовок, не перехватывайте ошибку и обрабатывайте ее, вместо этого, пусть она всплывает к моим службам и компонентам.
@Injectable()
export class ErrorHandlerInterceptor implements HttpInterceptor {
intercept(request: HttpRequest<any>,next: HttpHandler
): Observable<HttpEvent<any>> {
if (request.headers && request.headers.has(InterceptorSkip)) {
const headers = request.headers.delete(InterceptorSkip);
return next.handle(request.clone({ headers }));
}
return next.handle(request).pipe(catchError(this.processError));
}
...
}
тогда каждый раз, когда у вас есть HTTP-запрос, который вы хотите игнорировать, добавьте InterceptorSkipHeader
к запросу
this.http.get<ResponseModel>('api/url', { headers : InterceptorSkipHeader });