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

Refused to display iframe or embed tag in django 3.0 and chrome

我有一个 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 documentation

Since Django 3.0. The default value of the X_FRAME_OPTIONS setting was changed from SAMEORIGIN to DENY.

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

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

在这里专门用 Vimeo 嵌入视频记录事件。我需要将 SECURE_REFERRER_POLICY 设置为 None。默认值已在 Django 3.1 中更改。