You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

同一模块中配置Interceptor与依赖自定义服务时遇到问题

嘿,我帮你把这段Angular代码整理成清晰易读的Markdown格式啦,顺便补点关键提示:

AppModule 中注入令牌拦截器的配置
@NgModule({ 
  imports: [ BrowserModule, HttpClientModule ], 
  declarations: [AppComponent], 
  providers: [ 
    AuthService, 
    { 
      provide: HTTP_INTERCEPTORS, 
      useClass: BasicTokenInterceptor, 
      multi: true 
    } 
  ], 
  exports: [AppComponent], 
  bootstrap: [AppComponent] 
}) 
export class AppModule { }
BasicTokenInterceptor 拦截器核心代码
@Injectable() 
export class BasicTokenInterceptor implements HttpInterceptor { 
  constructor(private auth: AuthService) {} 
  // 这里补充拦截器的核心逻辑示例(实际可根据需求调整)
  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    // 从AuthService获取令牌并添加到请求头
    const authToken = this.auth.getToken();
    if (authToken) {
      request = request.clone({
        setHeaders: {
          Authorization: `Bearer ${authToken}`
        }
      });
    }
    return next.handle(request);
  }
}

关键提示:

  • 务必确保BasicTokenInterceptor已经正确导入到AppModule中,否则会出现"找不到类"的报错
  • multi: true是必备配置,它允许同时注册多个HTTP拦截器,绝对不能省略
  • 如果你的Angular版本较新,也可以给拦截器添加providedIn: 'root'元数据,这样就不用在AppModule的providers里手动注册了,示例:
@Injectable({ providedIn: 'root' }) 
export class BasicTokenInterceptor implements HttpInterceptor {
  // ...
}

内容的提问来源于stack exchange,提问作者Sumit Ramteke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:26:00