【问题标题】:How to fix Refused to display in a frame because it set 'X-Frame-Options' to 'sameorigin如何修复拒绝在框架中显示,因为它将“X-Frame-Options”设置为“sameorigin”
【发布时间】:2019-10-16 20:48:41
【问题描述】:

我在使用 Angular 的 i-frame 时遇到错误。它拒绝在框架中显示,因为它将“X-Frame-Options”设置为“sameorigin”

拒绝在框架中显示“https://docs.google.com/gview?url=https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf”,因为它设置了“X-Frame-Options”到“同源”。

【问题讨论】:

  • 顺便说一句,您现在应该将您的 S3 存储桶设为私有,它现在是公开的,我们只需访问 subtreebucket.s3.amazonaws.com 即可访问您的所有文件。在放东西之前先处理授权。

标签: html iframe x-frame-options


【解决方案1】:

您可以使用 target="_blank" 属性。

【讨论】:

  • 你的答案可以通过提及你提出这个建议的原因来更清楚,否则,它可以作为评论发布
【解决方案2】:

请使用带安全管道的消毒剂,然后附上如下链接

<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。一定会成功的

【讨论】:

    【解决方案3】:

    您不能否决这一点:正如您在对您显示的网址的GET 请求的响应中看到的那样,有一个响应标头x-frame-options: SAMEORIGIN

    这意味着源服务器未授权您在iframe 中显示此内容。

    你无法绕过这一点,这是一种安全保护:否则它会使会话劫持变得太容易。

    唯一的方法是拥有相同的资源和一个允许您被查看的 URL(例如直接 PDF url,这里是https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf,或者在 URL 中添加 embedded=true 可能会起作用,即 google特定文档)。

    【讨论】:

      【解决方案4】:

      从 src url 中去掉 https://docs.google.com/gview?url= 部分怎么样?

      <iframe 
        src="https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf"
        frameborder="0">
      </iframe>
      

      有效。


      这里有一个Working Sample StackBlitz 供您参考。

      【讨论】:

      • 我必须将该链接设为动态。
      猜你喜欢
      • 2013-12-28
      • 2017-05-22
      • 2022-11-29
      • 2016-10-08
      • 2018-02-22
      • 2018-08-05
      • 2020-11-07
      相关资源
      最近更新 更多