可以使用Angular HttpClient拦截器来处理响应,并确保即使响应状态码不是200,仍然返回响应体。以下是示例代码:
// 定义拦截器
@Injectable()
export class ResponseInterceptor implements HttpInterceptor {
intercept(request: HttpRequest, next: HttpHandler): Observable> {
return next.handle(request).pipe(
map((event: HttpEvent) => {
if (event instanceof HttpResponse) {
return event.clone({
body: event.body || {},
});
}
return event;
}),
);
}
}
// 将拦截器添加到HttpClientModule的拦截器列表中
@NgModule({
imports: [
HttpClientModule,
],
providers: [
{
provide: HTTP_INTERCEPTORS,
useClass: ResponseInterceptor,
multi: true,
},
],
})
export class AppModule {}
这样,无论响应状态码是什么,响应体都会被返回。
上一篇:AngularHttpclientpost请求不起作用,但是我无法捕获任何异常
下一篇:AngularHttpClient通过Promise使用时,使用firstValueFrom会导致错误被重复处理。