我在角度中使用 i-frame 时遇到错误。它拒绝在帧中显示,因为它将"X-帧选项"设置为"同源">
拒绝在帧中显示"https://docs.google.com/gview?url=https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf",因为它将"X-帧选项"设置为"同源"。
您不能否决这一点:正如您在对所显示 URL 的GET
请求的响应中看到的那样,有一个响应标头x-frame-options: SAMEORIGIN
。
这意味着源服务器不授权您在iframe
中显示此内容。
您无法规避这一点,这是一种安全保护:否则会使会话劫持变得太容易。
唯一的方法是使用相同的资源和一个允许您查看的 URL(例如直接 PDF URL,此处https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf
,或者向 URL 添加embedded=true
可能会起作用,这是特定于 google 文档的(。
请使用带有安全管道的santizer,然后包含以下链接
<iframe class="doc" src="https://docs.google.com/gview?url=https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf&embedded=true"></iframe>
确保在 iframe 中添加源代码时使用 embedded=true。它肯定会起作用
从 src url 中删除https://docs.google.com/gview?url=
部分怎么样?
<iframe
src="https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf"
frameborder="0">
</iframe>
它有效。
这是您的参考的工作示例堆栈闪电战。
将以下内容添加到 web.config customHeaders 部分:
<customHeaders>
<remove name="X-Powered-By" />
<remove name="X-Content-Type-Options" />
<add name="X-Frame-Options" value="ALLOW-FROM http://sharepointsitecollectionurl " />
<add name="Content-Security-Policy" value="frame-ancestors sharepointwebapplicationurl" />
<add name="X-Content-Type-Options" value="nosniff" />
<add name="X-XSS-Protection" value="1; mode=block" />
<add name="X-UA-Compatible" value="IE=Edge" />
</customHeaders>
因为您应该将内容嵌入到您的页面/网站上,而不仅仅是链接到它。
这是区别:
https://www.youtube.com/watch?v=${videoId}
- 这种链接是在浏览器上观看YouTube视频。这与其他链接相同。
https://www.youtube.com/embed/${videoId}
- 这种链接是将YouTube视频放在您的页面/网站上。这称为嵌入内容。
嵌入内容的目的是让读者留在您的网站上,为读者提供更好的体验,理想情况下,获得更多忠实的读者。与其将您的网站访问者发送到其他人的网站,不如将他们保留在您的内容所在位置并让他们参与其中,以便他们与您在一起的时间更长,并且更频繁地返回。
您可以使用 target="_blank" 属性。