拒绝在 django 3.0 和 chrome 中显示 iframe 或嵌入标签

Man*_*oya 6 embed django iframe clickjacking

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

<embed src="path_to_file.pdf" type="application/pdf">
Run Code Online (Sandbox Code Playgroud)

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

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

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

Man*_*oya 13

在经历了很多类似的问题并尝试了很多不同的事情之后,我终于找到了解决我的问题的方法,这要归功于django 文档

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

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

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

  • 谢谢曼努埃尔蒙托亚,你的解决方案对我有用。 (2认同)