你好,
当我想从外部 url 加载 pdf 时出现此错误
错误:文件来源与查看者的不匹配
throw new Error('文件来源与查看器不匹配');
请帮忙!
这是故意完成的,请参阅#6916。 修改 viewer.js 以将您的主机来源包含在 HOSTED_VIEWER_ORIGINS 列表中。 关闭作为回答。
谢谢@yurydelendik
但我不知道这个答案如何帮助我
但我不知道这个答案如何帮助我
修改 viewer.js 以将您的主机来源包含在 HOSTED_VIEWER_ORIGINS 列表中。
我做到了,但我不知道如何调用我的远程 pdf 文件
我做到了,但我不知道如何调用我的远程 pdf 文件
请解释。 您还可以提供以下信息:
我的 pdf 文件在 cloudinary 上。
当我将访问权限放入 DEFAULT_URL 变量时,出现错误
错误:文件查看器的来源不匹配
抛出新错误('文件查看器来源与\'s'不匹配);
我决定在 viewer.js 中评论这行
if (fileOrigin !== viewerOrigin) {
throw new Error('文件来源与查看器不匹配');
}
不要注释逻辑。 使用 console.log() 查看您的 fileOrigin 和 viewerOrigin 是否匹配。 确保您的 HOSTED_VIEWER_ORIGINS 对象中至少有一个条目与 viewerOrigin 匹配,并且“_File origin 与 viewer_”错误将消失。
添加这个:
console.log('fileOrigin', fileOrigin);
console.log('viewerOrigin', viewerOrigin);
... 正上方:
if (fileOrigin !== viewerOrigin) {
throw new Error('file origin does not match viewer\'s');
}
我敢打赌,您会像我一样在 URL 末尾丢失(或添加)一个斜杠(在控制台记录这两个变量时发现)。
希望这可以帮助某人。
能够使用 regex/wildchars 配置 HOSTED_VIEWER_ORIGINS 数组会很好。
为了允许非硬编码的 Mozilla 域,我必须修改一个名为 viewer.js 的 10k 行构建文件的源代码?
@gildasamuel你拯救了我的一天!!
正确的解决方法是打开 viewer.js 并将文件的主机附加到 HOSTED_VIEWER_ORIGINS
var HOSTED_VIEWER_ORIGINS = ['null', '.....'];
不要删除检查代码:|
我在 UWP 和本地 pdf 文件上有同样的问题(文件来源与查看者的不匹配)。 对于本地路径,究竟必须将哪些条目添加到 HOSTED_VIEWER_ORIGINS 中?
对于在应用程序中使用它的任何其他人,我必须添加“file://”以允许本地路径工作。
var HOSTED_VIEWER_ORIGINS = [
'空值',
' http://mozilla.github.io ',
' https://mozilla.github.io ',
'file://' //应用中的本地查看器
];
在我的情况下,我在本地编码,我遇到了同样的问题,我通过添加我的本地地址来解决:
var HOSTED_VIEWER_ORIGINS = [
'null',
'http://mozilla.github.io',
'https://mozilla.github.io',
'http://localhost:5000'
];
但不要删除检查代码:
if (fileOrigin !== viewerOrigin) {
throw new Error('file origin does not match viewer\'s');
}
我认为添加这两行将是一个很好的解决方案。 将自动检测您的本地 IP(无论您在哪里启动应用程序)
var LOCAL_AUTO_DETECT_ORIGIN = window.location.origin;
var HOSTED_VIEWER_ORIGINS = ['null', 'http://mozilla.github.io', 'https://mozilla.github.io'];
HOSTED_VIEWER_ORIGINS.push(LOCAL_AUTO_DETECT_ORIGIN);
这是故意完成的,请参阅#6916。 修改 viewer.js 以将您的主机来源包含在 HOSTED_VIEWER_ORIGINS 列表中。 关闭作为回答。
帮助过我
这是一个非常糟糕的问题,无论如何还没有解决。
从源“ http://localhost ”获取“ https://dmain/file.pdf ”的访问已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。 如果不透明响应满足您的需求,请将请求的模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。
你好,
是否有一个原因 ?
关注 cors 政策是浏览器的责任,而不是 pdfjs
我认为应该删除此检查。
我在 validateFileURL 函数的顶部添加了return;
并且它现在工作正常,我可以从亚马逊 s3 加载 pdf。
正如@IK77提到的,你能提供一个理由吗?
好吧,我发现了这个: https :
@IK77
最有用的评论
我决定在 viewer.js 中评论这行
if (fileOrigin !== viewerOrigin) {
throw new Error('文件来源与查看器不匹配');
}