我在angular中使用i帧时出现错误。它拒绝在框架中显示,因为它将“X-Frame-Options”设置为“sameorigin”拒绝显示'https://docs.google.com/gview?url= https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf ',因为它将'X-Frame-Options'设置为' sameorigin '。
8zzbczxx1#
你不能否决:正如你在对GET请求的响应中所看到的,有一个响应头x-frame-options: SAMEORIGIN。这意味着源服务器没有授权您在iframe中显示此内容。您无法规避此操作,这是一种安全保护:否则它将使会话劫持太容易。唯一的方法是拥有相同的资源,并提供一个允许您查看的URL(例如直接使用PDF URL,这里是https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf,或者将embedded=true添加到URL中可能会起作用,这是Google docs特定的)。
GET
x-frame-options: SAMEORIGIN
iframe
https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf
embedded=true
cdmah0mi2#
请使用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。肯定会成功的
wko9yo5t3#
从src url中去掉https://docs.google.com/gview?url=部分怎么样?
https://docs.google.com/gview?url=
<iframe src="https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf" frameborder="0"> </iframe>
它的工作。这里有一个Working Sample StackBlitz给你的参考。
6ojccjat4#
将以下内容添加到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>
e7arh2l65#
因为你应该把内容嵌入到你的页面/网站上,而不仅仅是链接到它。这就是区别:https://www.youtube.com/watch?v=${videoId}-这种链接是在浏览器上观看youtube视频。这和其他链接一样。https://www.youtube.com/embed/${videoId}-这种链接是把youtube视频放在你的页面/网站上。这称为嵌入内容。嵌入内容的目的是让读者留在你的网站上,为读者提供更好的体验,并在理想情况下获得更多的忠实读者。而不是把你的网站访问者送到别人的网站,你让他们在你的内容,让他们参与,使他们留在你更长的时间,更经常返回。
https://www.youtube.com/watch?v=${videoId}
https://www.youtube.com/embed/${videoId}
pgpifvop6#
你可以使用target="_blank”属性。
6条答案
按热度按时间8zzbczxx1#
你不能否决:正如你在对
GET
请求的响应中所看到的,有一个响应头x-frame-options: SAMEORIGIN
。这意味着源服务器没有授权您在
iframe
中显示此内容。您无法规避此操作,这是一种安全保护:否则它将使会话劫持太容易。
唯一的方法是拥有相同的资源,并提供一个允许您查看的URL(例如直接使用PDF URL,这里是
https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf
,或者将embedded=true
添加到URL中可能会起作用,这是Google docs特定的)。cdmah0mi2#
请使用santizer与安全管道,然后包括如下链接
确保在iframe中添加源代码时使用embedded=true。肯定会成功的
wko9yo5t3#
从src url中去掉
https://docs.google.com/gview?url=
部分怎么样?它的工作。
这里有一个Working Sample StackBlitz给你的参考。
6ojccjat4#
将以下内容添加到web.config customHeaders 部分:
e7arh2l65#
因为你应该把内容嵌入到你的页面/网站上,而不仅仅是链接到它。
这就是区别:
https://www.youtube.com/watch?v=${videoId}
-这种链接是在浏览器上观看youtube视频。这和其他链接一样。https://www.youtube.com/embed/${videoId}
-这种链接是把youtube视频放在你的页面/网站上。这称为嵌入内容。嵌入内容的目的是让读者留在你的网站上,为读者提供更好的体验,并在理想情况下获得更多的忠实读者。而不是把你的网站访问者送到别人的网站,你让他们在你的内容,让他们参与,使他们留在你更长的时间,更经常返回。
pgpifvop6#
你可以使用target="_blank”属性。