在Angular中,我们可以使用HttpInterceptor拦截器来处理API请求的响应。拦截器可以拦截请求和响应,并且可以在请求和响应时进行一些处理。
要处理300系列的状态码,我们可以在拦截器中检查响应的状态码,并根据状态码执行不同的操作。下面是一个示例拦截器,它会检查响应的状态码,并在遇到300系列的状态码时执行重定向操作:
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpResponse } from '@angular/common/http'; import { Observable } from 'rxjs/Observable'; import { tap } from 'rxjs/operators';
export class RedirectInterceptor implements HttpInterceptor {
intercept(req: HttpRequest
要使用这个拦截器,我们需要在NgModule中将其提供给HTTP_INTERCEPTORS:
@NgModule({ … providers: [ { provide: HTTP_INTERCEPTORS, useClass: RedirectInterceptor, multi: true } ], … }) export class AppModule { }
这样,在进行API请求时,如果服务器返回300系列的状态码,拦截器就会执行重定向操作。