后端返回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对象,而不是乱码了。
分类:
vue
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具