首页 > 解决方案 > 使用来自后端的流,PDF Blob 在新选项卡中不显示任何内容

问题描述

我使用https://github.com/barryvdh/laravel-dompdf 流方法向前端发送响应。这是我为在新选项卡中打开 pdf 而编写的代码。我从后端 API 调用流,结果它给出了响应,但是当我尝试创建 blob 时,它在 PDF 中什么也没有显示。

APICaller({
  method: 'get',
  responseType: "arraybuffer",
   headers: {
    'Accept': 'application/pdf'
  },
  endpoint: gep('generate/certificate?path=certificate.pdf', 'v3'),
}).then( (data) => {
   var file = new Blob([data.data], {type: 'application/pdf'});
   var fileURL = URL.createObjectURL(file);
   window.open(fileURL);

});

这是空 PDF

标签: javascriptphplaravelvue.js

解决方案


我对 axios 也有类似的问题,它不适用于使用 Blob 下载文件。使用 XMLHttpRequest 并在其事件中做类似的响应处理程序on('load')来实现文件下载。


推荐阅读