Как исправить CORS - один и тот же домен, Django API и React сайт
У меня есть страница, разработанная на React, развернутая с помощью vercel, которая делает запросы к веб-серверу Django. Я поместил их под свой домен: один - page.example.com, а другой - api.example.com. Однако, когда страница делает запросы к api.example.com, я получаю ошибку CORS.
Мои настройки выглядят следующим образом:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'api.apps.ApiConfig',
'djoser',
'rest_framework.authtoken',
"rest_framework_api_key",
'oauth2_provider',
'drf_api_logger',
'corsheaders',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'drf_api_logger.middleware.api_logger_middleware.APILoggerMiddleware'
]
Я пытался
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_ALL_ORIGINS = True
а также
CORS_ALLOW_ALL_ORIGINS = False
CORS_ALLOW_CREDENTIALS = True
CORS_ALLOWED_ORIGINS = ["https://page.example.com"]
CORS_ORIGIN_WHITELIST = ("https://page.example.com')
, безрезультатно.
Мы никогда не должны добавлять Access-Control-Allow-Origin в качестве заголовка запроса в код фронтенда.
Поле заголовка запроса Access-Control-Allow-Origin не разрешено Access-Control-Allow-Headers в префлайт-ответе, поэтому оно только создаст проблемы, если только веб-сервер не был настроен на отправку Access-Control-Allow-Headers: Access-Control-Allow-Origin заголовок ответа.
Короче говоря: это только заголовок ответа, а не запроса.