【发布时间】:2018-04-05 03:56:18
【问题描述】:
所以我配置了一个网站,允许我将来自 Wave 区块链的数据显示到在 AWS EC2 实例上运行的 django 网站上。
我使用 bitnami 将 django 的堆栈映像安装到服务器上。
网页的工作方式如下所示 www.wavesico.tk/Project/get-ico/jacks-easter-eggs
Django 版本 = 1.11.6
我的 url 正确地指向我的视图(因为上面的 URL 有效)urls.py:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', default_urlconf),
url(r'^createICO/$', initialForm),
url(r'^get-ico/([\w-]+)/$', crowdFund),
]
在我的视图文件中,我已包含:
from django.views.decorators.clickjacking import xframe_options_exempt
和
@xframe_options_exempt
def crowdFund(request, company_name):
c = WavesCompany.objects.get(name=company_name)
data = tokens.getTokenData(c.holdersKey, c.tokenKey)
return render(request, 'crowd_fund.html', data)
我还在我的设置文件中包含了中间件:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
但是,Chrome 仍然报告错误 'Refused to display 'https://www.wavesico.tk/Project/get-ico/jacks-easter-eggs/' in a frame 因为它将 'X-Frame-Options' 设置为 'sameorigin'
我尝试将“render()”函数更改为“HttpResponse”,但仍然没有成功。
谢谢大家, 杰克
【问题讨论】:
-
您使用的是哪个 Django 版本?请向您展示完整的中间件设置。您确定该 url 正在由带有装饰器的视图处理吗?
-
嗨 Alasdair,感谢您的回复,我已经编辑了我的问题。我使用 django 1.11.6。我确定 URL 的工作原理就像您尝试问题中的 url 它正确指向信息一样。但是,通过 IFrame 访问信息时,您会收到“sameorigin”错误再次感谢
-
您发布的代码看起来没问题。仔细检查您是否已部署上述代码并重新启动服务器。
-
我已经完成并且返回给 Chrome 的错误是'拒绝在框架中显示'wavesico.tk/Project/get-ico/jacks-easter-eggs',因为它将'X-Frame-Options'设置为'sameorigin''。这可能与我使用 bitnami 将 django 部署到服务器的事实有关吗?
-
This page 表明 bitnami Apache 配置可能正在设置
X-Frame-Options标头。
标签: python django amazon-ec2 x-frame-options clickjacking