Django 4.1.3 + React (axios) — как настроить CORS?

Настройка CORS (Cross-Origin Resource Sharing) - это важная задача при интеграции Django и React (или других фронтенд фреймворков), поскольку они выполняются на разных доменах (origin). CORS предотвращает выполнение запросов на сервер с домена, отличного от исходного домена, на котором выполняется код JavaScript. Без настройки CORS, вам не будет разрешено получать или отправлять данные через сетевые запросы AJAX или HTTP.

Для настройки CORS в Django 4.1.3 вам потребуется выполнить несколько шагов:

1. Установка пакета django-cors-headers:

   pip install django-cors-headers

2. Добавление 'corsheaders' в список установленных приложений в файле settings.py:

   INSTALLED_APPS = [
       ...
       'corsheaders',
       ...
   ]

3. Включение Middleware для обработки CORS в Django:

   MIDDLEWARE = [
       ...
       'corsheaders.middleware.CorsMiddleware',
       'django.middleware.common.CommonMiddleware',
       ...
   ]

4. Добавление настроек CORS в файле settings.py:

   CORS_ALLOWED_ORIGINS = [
       'http://localhost:3000',  # Замените этот URL на URL вашего React приложения
   ]

5. Настройка CORS для разрешения всех типов запросов:

   CORS_ALLOW_ALL_ORIGINS = True

Или настройка CORS для разрешения только определенных типов запросов:

   CORS_ALLOW_METHODS = [
       'GET',
       'POST',
   ]

   CORS_ALLOW_HEADERS = [
       'Accept',
       'Content-Type',
   ]

6. Применение миграций:

   python manage.py migrate

После этих шагов ваше Django приложение будет настроено для работы с CORS и будет разрешено отправлять и получать данные с указанных вами доменов.

Если у вас есть дополнительные требования или ограничения по настройке CORS, вы можете ознакомиться с официальной документацией Django CORS Headers (https://github.com/adamchainz/django-cors-headers), чтобы узнать больше о доступных параметрах и настройках.