我遇到 PDF.js 和 CORS 配置问题。
从域 A,我将 PDF.js 加载到一个 iframe 中,其中包含一个文件作为参数(服务器的完整路径,它将返回一个 pdf 文档)。 PDF.js 将使用 origin: domain A
创建对域 B 中服务器的请求。域 B 的服务器返回标题为 Access-Control-Allow-Origin: domain A
的 pdf 文档,到目前为止一切顺利。
在我的网络选项卡中,我看到对服务器的请求,它返回 200 状态正常,但 PDF.js 抛出错误 Unexpected server response (0) while retrieving PDF <url>
。
问题是,这里发生了什么,CORS 似乎没问题,但我真的无法从 PDF.js 获得更多信息,真正的原因是 PDF 加载失败。有遇到过相同情况的吗?
原文由 jcbvm 发布,翻译遵循 CC BY-SA 4.0 许可协议
终于找到问题了。我的服务器没有将
Access-Control-Allow-Credentials: true
标头传递给响应,这是必需的(xhr 请求是使用xhr.withCredential
发送的)。CORS 现在可以正常工作了。
在以下位置找到解决方案: https ://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/