后端返回pdf文件流,前端请求返回乱码文件流下载之后pdf文件空白

vue项目中遇到个问题:后端返回pdf文件流,前端请求返回乱码文件流下载之后pdf文件空白

解决办法:

在请求接口的时候设置responseType: "blob"。

复制代码
axios.get(url,{
        responseType: "blob",//这里一定要设置,否则返回的流是乱码,下载之后文件是空白的
    }).then(res => {
        const blob = new Blob([res.data], { type: 'application/pdf' });
        const pdfUrl = window.URL.createObjectURL(blob);
        if (typeof window.navigator.msSaveBlob !== "undefined") {
            window.navigator.msSaveBlob(pdfUrl, fileName.value);
        } else {
            const link = document.createElement('a');
            link.href = pdfUrl;
            link.setAttribute('download', fileName.value);
            document.body.appendChild(link);
            link.click();
            document.body.removeChild(link) 
            window.URL.revokeObjectURL(pdfUrl) //释放掉blob对象
        }
    })
复制代码

这样请求之后res.data是一个Blob对象,而不是乱码了。

posted @   我的webgis之路  阅读(1211)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示