使用Angular中的HttpInterceptor接口和自定义方法实现拦截器
Angular中的HttpInterceptor接口允许我们在发送HTTP请求或接收HTTP响应之前拦截并处理请求。我们可以创建自定义的拦截器,该拦截器可以在应用程序的整个请求/响应生命周期内拦截HTTP请求和响应。
以下是一个示例,在Angular应用程序中使用HttpInterceptor接口实现自定义拦截器:
1.创建一个名为AuthInterceptor的HTTP拦截器类
import { Injectable } from '@angular/core'; import { HttpInterceptor, HttpEvent, HttpHandler, HttpRequest } from '@angular/common/http'; import { Observable } from 'rxjs/Observable';
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
intercept(req: HttpRequest
2.在模块中提供拦截器,以便Angular自动在每个HTTP请求中使用它
import { HTTP_INTERCEPTORS } from '@angular/common/http'; import { AuthInterceptor } from './auth.interceptor';
@NgModule({ providers: [ { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }, ], }) export class AppModule { }
在这个例子中,我们创建了一个名为AuthInterceptor的HTTP拦截器类,并实现了HttpInterceptor接口的动作。我们还在应用程序的模块中提供了这个拦截器,使其可以自动用于所有HTTP请求。
现在,无论我们在应用程序中何处发出HTTP请求,都会在请求中调用AuthInterceptor类中的intercept方法,并在处理该请求之前执行我们自己的操作。
注意:在这里只是示例,你可以在intercept方法中编写自己的逻辑,比如添加请求头、处理响应等等!