要确保已将拦截器配置为提供程序。使用provideIn选项,可以避免手动在模块上注册拦截器。
示例代码:
import { Injectable } from '@angular/core'; import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http'; import { Observable } from 'rxjs';
@Injectable()
export class MyInterceptor implements HttpInterceptor {
intercept(req: HttpRequest
import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http'; import { MyInterceptor } from './my-interceptor';
@NgModule({ imports: [BrowserModule, HttpClientModule], providers: [ { provide: HTTP_INTERCEPTORS, useClass: MyInterceptor, multi: true, }, ], bootstrap: [AppComponent], }) export class AppModule { }
在提供程序中,使用提供者选项将拦截器配置为HTTP_INTERCEPTORS重要,否则拦截器将不会被执行。