【问题标题】:Refused to display iframe or embed tag in django 3.0 and chrome拒绝在 django 3.0 和 chrome 中显示 iframe 或嵌入标签
【发布时间】:2020-07-29 02:18:16
【问题描述】:

我有一个 django 应用程序,它使用 iframe 来显示存储在我本地机器中的 pdf,如下所示:

<embed src="path_to_file.pdf" type="application/pdf">

在所有受支持的浏览器中一切正常...直到今天。

该应用突然停止在 Chrome 上运行,并且控制台显示消息 Refused to display 'path_to_file.pdf' in a frame because it set 'X-Frame-Options' to 'deny'

在其他浏览器中它仍然照常工作。我不知道 Chrome 是否刚刚进行了更新或发生了什么变化,但它不再工作了。 ¡ 任何帮助将不胜感激!

【问题讨论】:

    标签: django iframe embed clickjacking


    【解决方案1】:

    在经历了很多类似的问题并尝试了很多不同的事情之后,感谢django documentation,我终于找到了解决问题的方法。

    自 Django 3.0. X_FRAME_OPTIONS 设置的默认值已从 SAMEORIGIN 更改为 DENY

    所以我只需将 X_FRAME_OPTIONS = 'SAMEORIGIN' 添加到 settings.py 中,问题就消失了。

    我仍然不知道是什么更改导致我的代码停止工作,因为我已经使用了 django 3.0 版本,因为它发布后,可能是 Chrome 更新。

    【讨论】:

    • 谢谢,Manuel Montoya,您的解决方案对我有用。
    【解决方案2】:

    在此处专门使用 Vimeo 嵌入视频记录事件。我需要将SECURE_REFERRER_POLICY 设置为NoneDjango 3.1 中的默认值已更改。

    【讨论】:

      猜你喜欢
      • 2015-11-03
      • 1970-01-01
      • 2020-12-14
      • 2016-09-17
      • 1970-01-01
      • 2016-10-12
      • 2015-05-24
      • 2013-02-28
      • 2017-06-05
      相关资源
      最近更新 更多