kindeditor在django3中的问题
一、问题
最近跟着B站上的老男孩视频写BBS项目,当用到kindeditor时碰到了一个问题。明明跟着老师写得,我的却总是出现这个情况:
试了多次确认,肯定不是我哪一步错了。打开f2:
看来是某个配置出问题。
Refused to display 'http://127.0.0.1:8000/' in a frame because it set 'X-Frame-Options' to 'deny'.
把上面这句话拿到百度,发现这样的文章:
所问题解释清楚了。
二、原因
原来是django3中把'X-Frame-Options'这个选项配置为'deny'。那就在配置选项中直接把这个选项改为:
X_FRAME_OPTIONS = 'SAMEORIGIN'
经过测试,可以解决。只不过这是从全局的角度解决问题。如果要解决单个网页的问题,可以参看上面的文章。我只把代码复制过来。备忘。
# 从代码来看,要想解决那个网页,就直接在那个视图函数上加上装饰器就OK了。
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.")
经过测试,可以解决问题。