javascript - 如何从 Angular 6 中的 HttpErrorResponse 获取正文?

标签 javascript angular angular-httpclient

我在我的 Angular 应用程序中创建了一个 REST API 调用,用于下载文件。

我正在将 responseType 设置为“blob”,因为我需要一个文件作为响应。

但是当服务器上没有可用文件时,响应的错误代码为 404,即 Bad Request,正文中有一些消息。

但我无法从正文中解析该错误消息,因为 HttpErrorResponse 在 error.error 中给出了一个 blob 对象

如何从错误对象而不是 blob 中获取实际主体。

还有什么方法可以配置 Angular 在 api 调用成功时将请求解析为 blob 否则将其解析为 json ???

希望得到解决

最佳答案

试试这个

if(error.error instanceof Blob) {
    error.error.text().then(text => {
      let error_msg = (JSON.parse(text).message);
      console.log(error_msg)
    });
} else {
    //handle regular json error - useful if you are offline
}       

关于javascript - 如何从 Angular 6 中的 HttpErrorResponse 获取正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53758280/

相关文章:

angular - 使用 HttpClient get 重载请求 header 和参数

angular - 如何处理 HttpClient 请求的日志记录?

angular - 哪个运营商有条件地链接 Observables?

cordova - 现有的 Angular 2 应用程序和 Cordova

javascript - Angular 5 httpClient - 使用 PUT jsonplaceholder 404

javascript - "on.hover"无法在 jQuery 插件功能中工作,鼠标悬停并单击可以工作

javascript - 如何清除 websocket 上的缓冲区?

javascript - 在 dom 准备好后,从 <img> 获取所有数据源并将它们设置在 src 属性中

javascript - 处理 ng-include 包含的代码中的 ng-click 事件

Angular - 如何修复 'property does not exist on type' 错误?