我有以下拦截器
export class JwtInterceptor implements HttpInterceptor, OnDestroy {
authKey: string;
subscription: Subscription;
constructor(private store$: Store<RootStoreState.IAppState>) {
this.subscription = this.store$.pipe(select(AuthStoreSelectors.authKey)).subscribe((key) => {
this.authKey = key;
});
}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
console.log('here', this.authKey)
// add authorization header with jwt token if available
if (this.authKey) {
request = request.clone({
setHeaders: {
Authorization: `Bearer ${this.authKey}`
}
});
return next.handle(request);
}
return null;
}
ngOnDestroy() {
this.subscription.unsubscribe();
}
}
我这样打我的http呼叫
constructor(@Inject(HttpClient) private httpClient: HttpClient) {}
saveMission(params: apiModels.SaveMissionRequest): Observable<apiModels.SaveMissionResponse> {
return this.httpClient.post<any>(`${environment.API_URL}/mission/save_mission`, params);
}
现在,我尝试在angular中注册我的拦截器,所以我用
更新我的app.module。 providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: JwtInterceptor,
multi: true
}
],
但是控制台中出现以下错误
compiler.js:2430未捕获的错误:InjectionToken的提供程序无效 HTTP_INTERCEPTORS。 useClass不能是未定义的。 通常在以下情况下发生: 1.存在循环依赖关系(可能是由于使用index.ts(桶形)文件引起的)。 2.在声明之前使用了类。在这种情况下,请使用forwardRef。
它已正确导入文件中,所以我认为是这种情况2,但是如果使用forwardRef,则会出现很多错误
错误TypeError:jit_val_130不是构造函数正在加载图标集 网址:/assets/icons/mdi.svg失败:jit_val_130不是构造函数
但是在我添加此前向引用之前从未发生过此错误,因此即使它看起来像是svg错误,也可能会导致应用模块崩溃。