角度4:将响应从API转换为PDF

时间:2018-11-08 06:43:33

标签: angular typescript http

enter image description here

大家好,我尝试从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);
    }

1 个答案:

答案 0 :(得分:0)

您的后端当前正在发送字符串。

假设您使用的是Express而不是

res.send(arr)

您应该使用

res.send(buffer);

这将确保发送二进制数据