使用django3 进行开发时,由于项目前端页面使用iframe框架,浏览器错误提示信息如下
Refused to display 'http://127.0.0.1:8000/' in a frame because it set 'X-Frame-Options' to 'deny'.
根据提示信息发现是因为 X-Frame-Options=deny 导致的。
1 X-Frame-Options是什么
The X-Frame-Options HTTP 响应头是用来给浏览器 指示允许一个页面 可否在 <frame>
, <iframe></iframe>
, <embed>
或者 <object></object>
中展现的标记。站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免点击劫持(clickjacking)攻击。
2语法
X-Frame-Options 有三个值:
- DENY :表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许
- SAMEORIGIN :表示该页面可以在相同域名页面的 frame 中展示
- ALLOW-FROM uri :表示该页面可以在指定来源的 frame 中展示