Конфигурация Django CORS не работает, несмотря на настройку промежуточного ПО

Я столкнулся с проблемой настройки CORS (Cross-Origin Resource Sharing) в моем проекте Django. Несмотря на настройку параметров CORS в моем settings.py и добавление CorsMiddleware в список MIDDLEWARE, я все еще сталкиваюсь с ошибками, связанными с CORS, при выполнении запросов из моего фронтенд-приложения.

Вот краткое описание моей конфигурации:

settings.py (настройки CORS и CSRF):

# CORS
CORS_URLS_REGEX = r"^/api/.*$"
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_WHITELIST = config("CORS_ORIGIN_WHITELIST", cast=Csv(), default=["http://localhost:3000"])
CORS_ALLOWED_ORIGINS = config("CORS_ALLOWED_ORIGINS", cast=Csv(), default=["localhost:3000"])
CORS_ALLOW_ALL_ORIGINS = config("CORS_ALLOW_ALL_ORIGINS", default=True, cast=bool)
CORS_ALLOW_METHODS = (
    "DELETE",
    "GET",
    "OPTIONS",
    "PATCH",
    "POST",
    "PUT",
)
CORS_ALLOW_HEADERS = list(default_headers) + ["Set-Cookie"]

# CSRF
CSRF_TRUSTED_ORIGINS = config("CSRF_TRUSTED_ORIGINS", cast=Csv())

CSRF_USE_SESSIONS = False
SESSION_COOKIE_SECURE = False
CSRF_COOKIE_SECURE = False
CSRF_COOKIE_SAMESITE = None
SESSION_COOKIE_SAMESITE = None

settings.py (ПРОМЕЖУТОЧНОЕ ПО):

MIDDLEWARE = (
    "django.middleware.security.SecurityMiddleware",
    "corsheaders.middleware.CorsMiddleware",
    "whitenoise.middleware.WhiteNoiseMiddleware",
    "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",
)

Несмотря на наличие этих настроек, при попытке выполнить запрос из моего фронтенд-приложения (https://example.com) к бэкенду Django (https://api.example.com/api/v1/), я получаю следующую ошибку:

Access to XMLHttpRequest at 'https://api.example.com/api/v1/' from origin 'https://example.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Failed to load resource: net::ERR_FAILED

Также я получаю такой результат от Postman: enter image description here

Версия Django: 4.2.1 django-cors-headers version: 4.3.1

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