【发布时间】:2019-04-18 18:29:06
【问题描述】:
我正在尝试对 pdf 进行 iframe,该 pdf 是通过 AJAX 检索的,因为服务器启用了 CORs,所以工作正常(已验证我通过 devtools 获取了 pdf)。
但由于以下错误,结果无法嵌入到 iframe 中:
Refused to frame '<SERVER_DOMAIN>' because it violates the following Content Security Policy directive: "default-src 'none'". Note that 'frame-src' was not explicitly set, so 'default-src' is used as a fallback.
所以我在我的页面中添加了以下元标记:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' <SERVER_DOMAIN>">
但还是不行。如何解决这个问题?
【问题讨论】:
-
先尝试将“frame-src”设置为“*”,看看能不能搞定。
-
如果您不想公开该 pdf 源的实际 url,您可以使用服务器端代理来获取文件内容并将其用作 iframe src。可能比使用 ajax 更容易
-
@JosefFazekas 你的意思是这样吗?
<meta http-equiv="Content-Security-Policy" content="frame-src:*">没用。语法是什么样的? -
我能问你为什么不在服务器端设置 CSP 吗?当您在服务器向您发送响应时已经收到 CSP 标头时,使用元标记无法正常工作(请参阅 Quentins 回答)
标签: javascript iframe cross-domain content-security-policy same-origin-policy