【发布时间】:2017-01-15 08:19:46
【问题描述】:
我遇到了 PDF.js 和 CORS 配置问题。
我从域 A 将 PDF.js 加载到一个 iframe 中,其中一个文件作为参数(服务器的完整路径,它将返回一个 pdf 文档)。 PDF.js 将使用origin: domain A 在域 B 的服务器上创建一个请求。域 B 的服务器返回带有标题 Access-Control-Allow-Origin: domain A 的 pdf 文档,到目前为止一切顺利。
在我的网络选项卡中,我看到了对服务器的请求,它返回 200 状态 OK,但 PDF.js 抛出错误 Unexpected server response (0) while retrieving PDF <url>。
问题是,这里发生了什么,CORS 似乎没问题,但我无法从 PDF.js 获得更多信息,真正的原因是 PDF 无法加载。有没有遇到同样情况的人?
【问题讨论】:
-
尝试不使用 iFrame。 iFrame 存在安全限制
-
@mplungjan 从文档来看,如果 CORS 设置正确,它应该可以工作,在我看来这似乎没问题,所以我想知道为什么这不起作用。此外,我不想与现有页面的 css/js 产生冲突,所以我想 canvas 将是唯一的选择,不确定这是否会在我必须支持的 IE9 等浏览器中顺利运行
-
这确实是另一种选择,但我想知道为什么上述情况不起作用......
-
看起来您的 CORS 设置不起作用(顺便说一句,CORS HTTP 请求拒绝 200 OK 是正常的)。如果您确信您的设置是正确的,请尝试使用不带/代替 PDF.js 应用程序的常规 XHR 请求。如果这可行,请查看网络工作者位置来源。旧版浏览器也存在 CORS 问题 - 在问题中提供更多信息并链接到您的应用程序。
标签: javascript pdf