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 });
};
}));
}
相关推荐
l1t20 分钟前
DeepSeek v4辅助生成的单文件SQL查询示例页面
javascript·数据库·sql
笋笋~1 小时前
el-tree 拖拽事件隔离:实现句柄独立控制,区域分离
javascript·vue.js·elementui
前端那点事1 小时前
Vue生命周期速查:Vue2+Vue3钩子全解析,新手也能秒懂
前端·vue.js
Aotman_2 小时前
Element UI 表格搜索高亮
前端·javascript·vue.js·ui·elementui
Dillon Dong3 小时前
【系列主题】拯救 OOM 与构建中断:Next.js 在 Docker 中的静态生成(SSG)避坑指南
开发语言·javascript·docker
han_hanker3 小时前
下拉模糊搜索多选, 编辑,详情问题
开发语言·javascript·ecmascript
yqcoder3 小时前
[特殊字符] Vue 3 中 Keep-Alive 对生命周期的影响:深度解析
前端·javascript·vue.js
jiayong233 小时前
第 33 课:任务看板视图(按状态分列)与本地持久化
开发语言·前端·javascript·学习
南风微微吹4 小时前
全国事业单位联考A、B、C、D、E类历年真题及答案解析PDF电子版(2015-2025年下)
pdf·考公
优化控制仿真模型4 小时前
【2026年最新】毕业论文答辩、开题汇报PPT模版电子版下载
经验分享·pdf