【发布时间】:2016-04-14 14:06:17
【问题描述】:
我有一个本地 Django 设置如下
Django Rest Framework:localhost:8000
AngularJS frontend:local apache running on http://localservername
我已经安装了django-cors-headers 并在我的settings.py 中设置了我的
CORS_ORIGIN_WHITELIST = (
'http://localhost',
'localservername',
'http://localservername',
'127.0.0.1'
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
但是,每当我点击从 Rest Framework 提供的任何 API 时,都会收到 No 'Access-Control-Allow-Origin' header is present on the requested resource. 错误。如果我设置CORS_ORIGIN_ALLOW_ALL = True,那么 API 可以正常工作,但这对我的服务器端数据来说是非常不安全的。
我需要改变什么来解决这个问题?
【问题讨论】:
-
您是否在
INSTALLED_APPS中的django.middleware.common.CommonMiddleware和corsheaders之前添加了corsheaders.middleware.CorsMiddleware? -
@DaniilRyzhkov,是的,我有,我会把它添加到我的问题中
-
@HamletHakobyan,这没关系,因为我的请求是从
localservername到localhost:8000 -
尝试删除
'http://localservername',和'http://localhost',行
标签: python django cors django-cors-headers