大家好,我尝试从API转换响应时遇到问题
请求正文不是Blob或数组缓冲区
这是我的代码
app.service.ts
downloadPDF(id_booking): any {
let headers = new Headers();
this.createAuthorizationHeader(headers);
return this.http.post('https://localhost:1210/v1/user/booking/eticket/'+id_booking, {responseType: ResponseContentType.Blob}, {headers: headers}).map(
(res) => {
console.log(res)
return new Blob([res.blob()], { type: 'application/pdf' })
})
}
pdf.component.ts
this.appService.downloadPDF(booking._id).subscribe(
(res) => {
saveAs(res, "myPDF.pdf");
var fileURL = URL.createObjectURL(res);
window.open(fileURL);
}
答案 0 :(得分:0)
您的后端当前正在发送字符串。
假设您使用的是Express而不是
res.send(arr)
您应该使用
res.send(buffer);
这将确保发送二进制数据