我想实现一个HttpInterceptor,以便处理一个404错误。现在,当到达HttpInterceptor时,我只想在控制台中记录一些内容。
我实现了一个基本的doNothing HttpInterceptor,但是没有工作。
app.module.ts
import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
import { ErrorHandlerInterceptor } from './blocks/interceptor/errorhandler.interceptor';
@NgModule({
imports: [
...
HttpClientModule
declarations: [...],
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: ErrorHandlerInterceptor,
multi: true
}
],
bootstrap: [MainComponent]
})errorhandler.interceptor.ts
import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpResponse } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class ErrorHandlerInterceptor implements HttpInterceptor {
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
console.log('Hello');
return next.handle(request);
}
}如果您想查看完整的代码,可以检查我的github
如果我正确理解,控制台应该在每次到达拦截器时显示“Hello”。但是当我试图到达一个不存在的url时,控制台不显示'Hello',只是我想要处理的错误.
谢谢你的帮忙
发布于 2019-01-21 12:34:23
拦截器用于处理传出请求。假设您使用HttpClient来发出get请求。然后它会通过拦截器。试图导航到一个不存在的路由并不会被拦截器捕获。
https://stackoverflow.com/questions/54289952
复制相似问题