如何在HttpErrorResponse中获取正文消息



我调用发出服务器请求的服务方法:

this.applicationBuildingsService
.create(this.application.appid)
handleResponseMessage(this.messageService))
.subscribe((response: Building) => {});

其中handleResponseMessage为:

export const handleResponseMessage = (
messageService: MessageService,
message = { success: 'Операция прошла успешно!', error: 'Операция прошла неуспешно!' },
) =>
pipe(
tap((response: any) => {
messageService.showMessage('', response?.message || message.success, 'success');
}),
catchError((error: HttpErrorResponse) => {
console.log(error);
messageService.showMessage('', error?.message || message.error, 'error');
return throwError(error);
}),
);

当服务器返回错误(不是2xx状态(时,我尝试从服务器获取json主体,其中包含消息错误:

catchError((error: HttpErrorResponse) => {}

HttpErrorResponse没有体属性

参数:{ observe: 'response' },用于读取包括标头在内的完整响应。请参阅以下描述:-

告诉HttpClient您希望使用observe选项得到完整响应:

getConfigResponse(): Observable<HttpResponse<Config>> {
return this.http.get<Config>(this.configUrl, { observe: 'response' });
}

最新更新