基本的 HttpInterceptor 从未达到

basic HttpInterceptor never reached

我想实现一个 HttpInterceptor 来处理 404 错误。现在我只想在到达 HttpInterceptor 时在控制台中记录一些内容。

我实现了一个基本的 doNothing HttpInterceptor 但没有任何效果。

app.module.ts

import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
import { ErrorHandlerInterceptor } from './blocks/interceptor/errorhandler.interceptor';
@NgModule({
  imports: [
    ...
    HttpClientModule
  declarations: [...],
  providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: ErrorHandlerInterceptor,
      multi: true
    }
  ],
  bootstrap: [MainComponent]
})

errorhandler.interceptor.ts

import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpResponse } from '@angular/common/http';
import { Observable } from 'rxjs';

@Injectable()
export class ErrorHandlerInterceptor implements HttpInterceptor {
  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    console.log('Hello');
    return next.handle(request);
  }
}

如果您想查看完整代码,可以查看我的github

如果我没理解错的话,每次到达拦截器时控制台应该显示'Hello'。但是当我尝试达到一个不存在的 url 时,控制台不显示 'Hello',只是我想要处理的错误...

感谢您的帮助

拦截器用于处理传出请求。假设您使用 HttpClient 发出 get 请求。然后它将通过拦截器。尝试导航到不存在的路由不会被拦截器捕获。