Как использовать CORS в django rest framework?

Я использовал django-cors-headers для CORS, но не могу заставить CORS работать правильным образом.

С клиентской стороны я могу запустить код с любого хоста, которого нет в списке ALLOWED HOSTS, но запрос все равно завершается без какой-либо CORS ошибки.

Может ли кто-нибудь сказать мне, как я могу разрешить только хосты из белого списка?

Мой settings.py

Для фронтенда я использую:

  config["headers"]["Access-Control-Allow-Origin"] = ENV.API_URL
  config["headers"]["Access-Control-Allow-Credentials"] = 'true'

fetch(ENV.API_URL+url, config)

Вам не нужно ничего делать во фронтенде с заголовками и т.д. Вам просто нужно убедиться, что Django (бэкенд) разрешает запросы с хоста, на котором запущен фронтенд.

Вы добавили 'http://127.0.0.1', который является хостом бэкенда, (если они не работают на одном хосте, но тогда вам нужно добавить порт?)

Итак, с помощью django-cors-headers вы можете сделать что-то вроде этого:

Допустим, бэкенд работает на api.mysite.com а фронтенд работает на mysite.com (с HTTPS)

Затем в settings.py добавьте следующее:

CORS_ALLOWED_ORIGIN_REGEXES = [
    r'^https:\/\/mysite.com$',
]

и если вы хотите разрешить с localhost для разработки, то также добавьте, что разрешит с localhost на любой порт:

r'^http:\/\/localhost:\d+$',
Вернуться на верх