我正在使用Angular 5.2。我有一个拦截器,用于拦截未经授权返回的响应,以便在需要时可以向用户显示登录屏幕,然后可以重试该请求。
根据提供者,我有:
{
provide: HTTP_INTERCEPTORS,
useClass: UnAuthorizedInterceptor,
multi: true
}
我还使用BlockUIHttpModule,以便在大多数http请求期间阻止用户屏幕。
BlockUIHttpModule.forRoot({
requestFilters: [BlockUIFilterFunction]
}),
我面临的挑战是,如果发送了HTTP请求并返回401并且凭据已过期,则请求未完成。显示登录屏幕。用户登录后,将重试并完成该请求。
但是,由于BlockUIHttpModule拦截器在UnAuthorizedInterceptor之前运行,因此BlockUI继续阻塞。我想在拦截器之后从BlockUIHttpModule运行拦截器。
如果有帮助,我愿意将angular更新到更高版本。我一直在寻找其他建议,但通常在提供程序中按顺序提供拦截器。