我有一个本地 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 可以正常工作,但这对我的服务器端数据来说非常不安全。
我必须更改什么才能解决此问题?
原文由 Newtt 发布,翻译遵循 CC BY-SA 4.0 许可协议
在此错误中,提示清楚地提到它需要
https://
此外,大括号在 django 设置中也很重要。
并且上述设置工作正常。
虽然具有不同括号的相同设置将不起作用