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 });
};
}));
}
相关推荐
冰暮流星42 分钟前
javascript之webstorage用法
开发语言·javascript·ecmascript
执子念的飞鱼1 小时前
浏览器直接预览 Pages、Numbers、Keynote:iWork 格式真正难在哪
前端·javascript
用户345208153881 小时前
我给 DSH 写了读 10x 数据的插件
javascript
执子念的飞鱼1 小时前
70MB Excel 浏览器预览失败:定位 XLSX 重复解压与内存峰值
javascript·性能优化
京东云开发者1 小时前
【全栈实践】第一个 AI Agent 项目:从零搭建 AI 音频创作助手【最终版】
前端·vue.js·音视频开发
12.=0.2 小时前
【REVIEW_C】【持续更新】
服务器·前端·javascript
Brown.alexis2 小时前
es6知识点4-自备使用
前端·javascript·es6
一颗烂土豆2 小时前
ECharts 太平面?试试这款 Vue 3D 图表库
前端·vue.js·echarts
Hilaku2 小时前
为什么同一段代码在 Safari 上永远有 Bug?
前端·javascript·程序员
张元清2 小时前
React scrollIntoView + useRef:滚动到指定元素 (2026)
javascript·react.js