Как исправить CORS - один и тот же домен, Django API и React сайт

У меня есть страница, разработанная на React, развернутая с помощью vercel, которая делает запросы к веб-серверу Django. Я поместил их под свой домен: один - page.example.com, а другой - api.example.com. Однако, когда страница делает запросы к api.example.com, я получаю ошибку CORS.

enter image description here

Мои настройки выглядят следующим образом:

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 заголовок ответа.

Короче говоря: это только заголовок ответа, а не запроса.

Вернуться на верх