天天动画片 > 八卦谈 > (解决)PDF.js提示:载入PDF时发生错误 ,信息:Failed to fetch

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

八卦谈 佚名 2024-04-06 18:28:22

前言

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

之前也在网上胡乱搜索了一通,各种更换PDFJS版本、CORS解决跨域问题、安装chrome跨域扩展,都没有解决问题。于是我就把问题归结于“水土不服”了,nextcloud嘛,老外的东西,可能某些东西被土蔷导致在线加载异常吧。

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

尝试

再次不服气,索性我就打开了F12,看了整个PDF的加载过程:首先从服务器加载pdfjs,然后加载pdf文件,然后IDM就弹出了下载框,紧接着报错;

首先,pdf.js是加载成功的,这没问题;其次,pdf文件也正常加载,IDM下载框都弹出了;那就纳闷了,继续搜索,github上有个issue是说是跨域问题解决的,于是我又按照教程,安装“access-control-allow-origin”插件,开启跨域,仍然不行。NND!

意外

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

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

解决

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

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

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


本文标题:(解决)PDF.js提示:载入PDF时发生错误 ,信息:Failed to fetch - 八卦谈
本文地址:www.ttdhp.com/article/53480.html

天天动画片声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
扫码关注我们