同一模块中配置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
相关产品推荐
相关产品推荐

