vue Pdf 预览控制台把pdf的url暴露出来了

在写项目的时候,需要做一个pdf下载收费的功能,我才用的插件是vue-pdf,发现在控制要里给我暴露出一个 blob:http://localhost:9528/74eb90ba-f721-48f1 直接就可以下载。

这个问题的出现是因为你使用了Blob URL,它会在浏览器中创建一个唯一的URL来表示blob对象。

这是我原先的代码逻辑

复制代码
loadPdfStream() {
  const params = {
    bookUrl: this.$route.query.bookUrl,
    pageNum: this.pageNum,
  };
  readBook(params).then((res => {
    const blob = new Blob([res], { type: 'application/pdf' })
    this.src = pdf.createLoadingTask({ url: URL.createObjectURL(blob), CMapReaderFactory });
  }));
}

解决方案是使用data URL代替Blob URL。你可以使用URL.createObjectURL()方法将Blob对象转换为data URL,然后将其传递给PDF阅读器。这样做可以避免在控制台中看到Blob URL。

复制代码
 loadPdfStream() {
const params = {
bookUrl: this.$route.query.bookUrl,
pageNum: this.pageNum,
};
readBook(params).then((res => {
const blob = new Blob([res], { type: 'application/pdf' });
const reader = new FileReader();
reader.readAsDataURL(blob);
reader.onloadend = () => {
this.src = pdf.createLoadingTask({ url: reader.result, CMapReaderFactory });
};
}));
}
相关推荐
bmxy小明同学4 小时前
2026-10-11-幻觉治理
服务器·前端·javascript
m0_587383004 小时前
无人自助拼豆系统落地开发实战指南 核心逻辑实现与部署经验分享
前端·javascript·vue.js·人工智能·经验分享·需求分析
zhaiyy5 小时前
HTML Popover API 实践
前端·javascript·html
OpsEye5 小时前
企业 AI 管理新需求:不仅要接入模型,还要看懂每一次调用
javascript·ai编程
牧艺5 小时前
SPA 也能像原生 App:View Transitions API 从原理到可上线实战
前端·javascript·css
Dovis(誓平步青云)5 小时前
现场问题先关闭还是先验收,建筑任务怎样处理依赖
前端·javascript·数据库·mysql·音视频
用户84298142418105 小时前
压缩 ≠ 加密:前端代码保护的三层实践与踩坑记录
前端·javascript
.Hypocritical.6 小时前
SpringBoot+Vue 前后端分离项目部署到云服务器
服务器·vue.js·spring boot
怕浪猫6 小时前
12个UI组件库,Star最低的下载最多
前端·javascript·面试
溪语流沙6 小时前
【Web全栈进阶】Vue3起步:组件、模板语法、响应式数据
前端·javascript·vue.js·css3