重点来了大家不要踩坑:这种一般都是格式问题,要在ajax方法中添加参数,确保传输的数据格式,接收到数据后也要再三确认格式:

 const downloadPdf = () => {
         PurchaseOrderDetailApi.downloadPdf(id).then((response) => {
             const blob = response.rawRes.data
             const blobob = new Blob([blob], { type:'application/pdf;charset=utf-8' });
             //Convert the requested BLOB data to a downloadable URL address
             let URL = window.URL || window.webkitURL;
             const href = window.URL.createObjectURL(blobob); 
             window.open(href);
            //  The following code is reserved to prevent modification
            //  const downloadElement = document.createElement('a');
            //  downloadElement.href = href;
            //  downloadElement.download = decodeURI(fileName); 
            //  document.body.appendChild(downloadElement);
            //  downloadElement.click(); 
            //  document.body.removeChild(downloadElement); 
            //  window.URL.revokeObjectURL(href);
            //  const a = document.createElement('a');
            //  a.download = '';
            //  a.href = url;
            //  a.click();

注意postForm确认传输form表单格式 

responseType:'blob'

 请求API方法:

  async downloadPdf(id) {
        let url = '/api/purchase/purchaseOrders/downloadOrderPDF';
        let param = {
            responseType:'blob'
        return RestClient.postForm(url, {id:id},param);

还有new Blob([blob], { type:'application/pdf;charset=utf-8' }) 加了一句:

{ type:'application/pdf;charset=utf-8' }

 这下跳转就正常了:

 把自测之后把代码上传

问题场景: axios请求二进制数据转换生PDF空白问题,使用axios请求后端接口,后端返回的二进制文件,需要转换成PDF,但是在postman中直接保存文件是可以打开的; 问题描述: 请求后端接口 => 转换PDF文件 代码: import axios from '@public/axios' // 引入封装的axios // 请求方法如下 reqExcel: reqData => axios.get(`api/expo.
pdf文件下载的时候,后端返回了二进制数据前端在发起请求时需要设置responseType: arraybuffer 或者blob类型才可以,具体操作可以看我之前的文章(传送门)。一开对接的时候下载打开都是正常的,过后突然就不行了,能下载功,页数也是正常的,但是打开页面却都是空白的。 搜索百度了一番,都是说设置好response Type就可以了,偶然发现有人评论说不能用axios请求要用原生的Ajax请求才可以,试了一下果然功了。 具体代码: downloadFn() { 这个方法是通过调用服务,服务端给前端返回pdf文件(不是字节)。在用blob下载。貌似所有方法都是文件下载的吧。 // 后端服务地址方法 api(id).then(res => { let blob = new Blob([res]); let objectUrl = URL.createObjectURL(blob); let link = document.createElement('a'); link.download = '我的pdf文件.p.
记录一下前端下载后端返回的pdf文件,显示空白问题。 const blob = new Blob([content.data], { // type是需要对应的文件类型 type: "application/pdf;chartset=UTF-8", // 这里如果是其他格式的文件,把pdf改为所下载文件格式就可以 const fileName = "文件名.pdf"; if ("dow
昨天很郁闷,我用了5年的移动硬盘,莫名奇妙的坏掉了。里面40G的资料全部报销了。  为了不再重蹈覆辙,我决定把重要的电子书都放到网络硬盘上去备份。索性将这些资料的下载方式公布出来,与大家分享,一定会有你想要的!  下载的兄弟注意了,点击下载后,可以在url中看到后缀名:),如果 function blobToBase64(blob, callback) { var reader = new FileReader(); reader.onload = function() { var dataUrl = reader.result; var base64 = dataUrl.split(',')[1]; callback(base64); reader.readAsDataURL(blob); 你可以将图片的 Blob 对象作为参数传入该函数,然后在回调函数中获取转换后的 Base64 字符串。 CSDN-Ada助手: 非常感谢博主的分享,这篇博客对我解决了一个大问题。博主的解决方法非常清晰易懂,让我受益匪浅。希望博主能够再次创作,分享更多有价值的知识。真心觉得博主的努力和付出值得肯定,希望您一直能够坚持下去,为我们带来更多优秀的技术文章。 为了方便博主创作,提高生产力,CSDN上线了AI写作助手功能,就在创作编辑器右侧哦~(https://mp.csdn.net/edit?utm_source=blog_comment_recall )诚邀您来加入测评,到此(https://activity.csdn.net/creatActivity?id=10450&utm_source=blog_comment_recall)发布测评文章即可获得「话题勋章」,同时还有机会拿定制奖牌。 记录前端JS获取PDF文件流,将blob对象转换成下载链接打开后一篇空白的问题 黄桃罐头和你: 为什么我也是按照这么写的还是空白,报错invaild absolute docbaseurl 小程序报错invalid code解决办法 工具人·: 修改不了,他说不合法 小技巧,windows电脑上多开软件的办法 Python310: 完全照你的方法做的 小技巧,windows电脑上多开软件的办法 Python310: 怎么我的出来还是一个呢???