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
我正在使用 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