django 中 Refused to display in a frame because it set 'X-Frame-Options' to 'sameorigin' / 'deny'

≡放荡痞女 提交于 2019-12-17 19:40:47

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

Refused to display 'http://xxx' in a frame because it set 'X-Frame-Options' to 'sameorigin' / 'deny'

当页面中 嵌入页面时 可能会报这样的错误

原因:

sameorigin 的原因是 在页面中嵌入的 非同源的 页面

deny 的原因是在页面中嵌入的 不许用嵌入的页面

解决:

NGINX中可以设置 X-Frame-Options响应头

X-Frame-Options 响应头有三种不同的选项:

ALLOW-FROM:页面地址允许frame加载。 

SAMEORIGIN:页面地址只能被同源域名页面嵌入到frame中;

DENY:页面地址不能被嵌入到任何frame中;

在django中:

django中对应这三种类型:

xframe_options_exempt

xframe_options_sameorigin

xframe_options_deny

引入地址:

from django.views.decorators.clickjacking import xframe_options_exempt, xframe_options_sameorigin, xframe_options_deny

使用:

在 对应接口上添加对应的 装饰器 , 使用xframe_options_exempt可避免问题的发生

from django.views.decorators.clickjacking import xframe_options_exempt
@xframe_options_exempt
def get_html_page(request):
    pass

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!