如何在Django中配置X-Frame-Options以允许一个视图的iframe嵌入?

如何在Django中配置X-Frame-Options以允许一个视图的iframe嵌入?,django,iframe,http-headers,x-frame-options,Django,Iframe,Http Headers,X Frame Options,我试图使django允许一个特定的视图嵌入到外部站点上,最好不受站点限制 在我的views.py文件中,我添加了以下代码,其中view futurebig是我希望能够嵌入的代码: from django.views.decorators.clickjacking import xframe_options_sameorigin ... @xframe_options_sameorigin def futurebig(request): ... return render_to_r

我试图使django允许一个特定的视图嵌入到外部站点上,最好不受站点限制

在我的views.py文件中,我添加了以下代码,其中view futurebig是我希望能够嵌入的代码:

from django.views.decorators.clickjacking import xframe_options_sameorigin
...
@xframe_options_sameorigin
def futurebig(request):
    ...
    return render_to_response('templates/iframe/future_clock_big.html', context_dict, context)
据我所知,这并没有什么帮助,因为它只支持在同一台服务器中嵌入

如何设置特定视图的标题,使其能够嵌入任何网站

作为记录,我只是一个前端开发人员,开发该网站的后端开发人员不再与我合作,并拒绝记录他的代码,因此,如果有人能帮助我,仔细解释我应该在哪里做修改,以及应该做什么修改,我将非常感谢

谢谢


据我所知,Django版本是1.6,你正在朝着正确的方向前进,但实现这一目标所需的确切装饰器是“xframe\u options\u豁免”

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

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

PS:DJango 1.6不再受支持。现在是升级的好时机。

显然,您可以在设置中设置一个规则,告诉以下内容:

X_FRAME_OPTIONS = 'ALLOW-FROM https://example.com/'
现在也应该考虑搬到CSP

Content-Security-Policy: frame-ancestors 'self' example.com *.example.net ;

请参见

如果要允许特定视图中的帧,可以将内容安全策略添加到视图响应中,因此代码如下所示

def MyView(request):
    ....
    ....
    response = render(request,'MyViewHtml.html' ,{...})
    response ['Content-Security-Policy'] = "frame-ancestors 'self' https://example.com"

我想,我们需要一个装饰器来允许从iframe选项定义可接受的域,而不仅仅是删除X-Frame头,请,有人,创建票据(我没有访问权限)允许从将不支持chrome和safari