侧边栏壁纸
博主头像
Linux学习记录博主等级

我们因为好奇而所获得的一切,最终会因为骄傲而全然玷污

  • 累计撰写 45 篇文章
  • 累计创建 13 个标签
  • 累计收到 9 条评论

目 录CONTENT

文章目录

(解决)PDF.js提示:载入PDF时发生错误 ,信息:Failed to fetch

Frank
2021-05-24 / 7 评论 / 0 点赞 / 11 阅读 / 1609 字

前言

一直以来都有一个困扰,就是自己搭建的Nextcloud在线浏览PDF始终有问题,如下图:

1-1.jpg2-1.jpg

之前也在网上胡乱搜索了一通,各种更换PDFJS版本、CORS解决跨域问题、安装chrome跨域扩展,都没有解决问题。

于是我就把问题归结于“水土不服”了,nextcloud嘛,老外的东西,可能某些东西被土蔷导致在线加载异常吧。

直到我又搭建了kodbox,在线浏览PDF仍然异常。这我就纳闷了,官方的演示站可是很正常的。

尝试

再次不服气,索性我就打开了F12,看了整个PDF的加载过程:

首先从服务器加载pdfjs,然后加载pdf文件,然后IDM就弹出了下载框,紧接着报错;

3-1.jpg首先,pdf.js是加载成功的,这没问题;

其次,pdf文件也正常加载,IDM下载框都弹出了;

那就纳闷了,继续搜索,github上有个issue是说是跨域问题解决的,于是我又按照教程,安装“access-control-allow-origin”插件,开启跨域,仍然不行。NND!

意外

在郁闷中,随便点点时,发现在pdf.js的窗口中,有个加载本地文件的按钮,我加载了一个本地pdf,居然成功打开了!如下图:

4-1.jpg

这就有意思了,pdf.js加载正常,pdf文件下载链接也正常,于是我猜想,那就是加载pdf的时候出问题了?会不会是弹出的IDM的问题?

解决

于是,我关掉chrome浏览器的IDM扩展,取消对chrome下载的接管,再试,直接搞定,PDF在线预览成功!

6.png

所以,PDF.JS预览的原理那就是,先加载PDF.JS插件,然后将PDF文件下载到缓存,然后打开。之前我的IDM在下载PDF的时候直接接管了浏览器的下载,导致PDF.JS插件加载PDF文件失败。

原理弄清楚后,还得恢复IDM的正常功能,总不能因为预览PDF就不用IDM吧,进入IDM选项,取消对PDF的自动下载,搞定!

5.jpg  

0

评论区