问题的根源是Angular错误处理器没有包含http状态文本,只包含错误消息。为了显示http状态文本,可以通过以下代码在错误消息中添加状态文本:
@Injectable()
export class CustomErrorHandler implements ErrorHandler {
handleError(err: any): void {
if (err instanceof HttpErrorResponse) {
console.error(Backend returned status code: ${err.status},
+ body was: ${err.error}
);
throw new Error(Error ${err.status} - ${err.statusText}: ${err.message}
);
} else {
throw err;
}
}
}
在上面的代码中,通过检查错误是否为HttpErrorResponse,将http状态文本添加到错误消息中。最后,将CustomErrorHandler提供给providers数组以替换默认的ErrorHandler即可。