Angular:可通过订阅观察 returns 错误 200 正常,因为响应不是 JSON

Angular: Observable with subscribe returns error 200 OK as the response is not JSON

我正在使用 Angular 11 开发一个前端 Web 应用程序。此应用程序使用多项服务,其中 return 数据采用 JSON 格式。 我使用 async / await javascript 构造和 Observables 从这些服务中获取答案。这是我的电话示例:

let myResponse = await this.myService(this.myData);
myResponse.subscribe(
   res => {
    console.log("Res: ",res)
   }, (error) => {
    console.log("Error: ",error)
   }
);

其中 this.myService 包含使用 Angular httpClient 执行 HTTP 调用的代码。 不幸的是,特定服务(只有一个!)没有 return JSON 格式的数据,但它 return 是一个 字节数组 (标识pdf -格式 application/pdf-)。 不幸的是,此调用会导致一个非常奇怪的错误,代码为 200 OK:

如何防止 res 被解释为 JSON 并因此报告此错误?我如何阅读 res 报告 它不会采用 json 格式

此服务没有任何错误(使用 Postman 可以完美运行)。问题是 Javascript 和 Observable 被解释为 JSON。在这种情况下,如何读取 res 的内容?

如果 HTTP API 调用未返回 JSON,只需在 responseType 选项中提供正确的值:

this.httpClient.get('<URL>', {
      responseType: 'arraybuffer'
});

参考:https://angular.io/api/common/http/HttpClient#description