首页 > Web开发 > 详细

Django 报错 Refused to display 'http://127.0.0.1:8000/ in a frame because it set 'X-Frame-Option

时间:2020-08-01 14:37:11      阅读:551      评论:0      收藏:0      [点我收藏+]

如图:

技术分享图片

 

 查看代码:

iframe 链接的地址src = ‘/account/my-image/‘的body是空的

技术分享图片

 

查看setting配置,如下:

MIDDLEWARE = [
...
‘django.middleware.clickjacking.XFrameOptionsMiddleware‘,
...
]

上面的内容显示,Django的项目中默认设置了XFrameOptionsMiddleware的中间件,这个设置将对于X-Frame-Options的配置设置成了DENY。
在Django 3.0中,X_FRAME_OPTIONS的默认设置从SAMEORIGIN 变成了DENY。

方式1:指定的网页配置

from django.http import HttpResponse
from django.views.decorators.clickjacking import xframe_options_exempt
from django.views.decorators.clickjacking import xframe_options_deny
from django.views.decorators.clickjacking import xframe_options_sameorigin

@xframe_options_exempt
def view_one(request):
return HttpResponse("This page is safe to load in a frame on any site.")

@xframe_options_deny
def view_two(request):
return HttpResponse("I won‘t display in any frame!")

@xframe_options_sameorigin
def view_three(request):
return HttpResponse("Display in a frame if it‘s from the same origin as me.")

提示:XFrameOptionn 中有三中,DENY  不允许嵌入IFrame、SAME_ORIGIN 运行显示同源iframe、ALLOW_FROM指定地址的iframe

方式2:修改源代码

from django.middleware import clickjacking

技术分享图片

 

Django 报错 Refused to display 'http://127.0.0.1:8000/ in a frame because it set 'X-Frame-Option

原文:https://www.cnblogs.com/bobocheer/p/13414367.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!