我已经部署了一个Web应用程序,并为其创建了一个子域作为其后端的URL(例如,主URL是domain.com,子域是api.domain.com),两者都是https。
当我从前端请求我在Django Rest Framework中创建的API时,我得到错误:
对XMLHttpRequest的访问已被CORS策略阻止:所请求的资源上不存在“控制-允许-起源”标头
下面的代码是我的settings.py的一部分。
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
...
'corsheaders',
]
MIDDLEWARE = [
'whitenoise.middleware.WhiteNoiseMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.middleware.locale.LocaleMiddleware',
'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',
]
字符串
我将感谢你给我解决办法。
1条答案
按热度按时间ddarikpa1#
在django-cors-headers文档中:
CorsMiddleware应该尽可能放在高处,尤其是在任何可以生成响应的中间件之前,比如Django的CommonMiddleware或者Whitenoise的WhiteNoiseMiddleware。如果不是在之前,它将无法将CORS头添加到这些响应中。