我有一个本地的Django设置,如下所示
Django Rest Framework
:localhost:8000
AngularJS前端
:在http://localservername上运行的本地Apache
我已经安装了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
中的corsheaders
之前正确添加了corsheaders.middleware.CorsMiddleware
和django.middleware.common.CommonMiddleware
? - Daniil Ryzhkovlocalservername
到localhost:8000
。 - Newtt'http://localservername',
和'http://localhost',
行。 - Daniil Ryzhkov