Django-cors-headers не добавляет заголовок Access-Control-Allow-Origin

Я пытаюсь использовать библиотеку django-headers для ограничения разрешенных оригиналов только моим собственным доменом. Однако я не могу заставить ее работать для любого значения, кроме подстановочного знака *.

Моя конфигурация в settings.py:

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

MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware', # Placed at the top of the middlewares
...
]

CORS_ALLOWED_ORIGINS= [
    'https://example.com'
]

При такой конфигурации я не получаю заголовка Access-Control-Allow-Origin ни на одном из моих запросов на конечных точках моего домена (например, POST https://example.com/profile).

Я также попытался проверить, могу ли я вызвать какие-либо ошибки, разрешив только некоторые случайные источники, надеясь, что браузер будет выдавать ошибки CORS, например:

CORS_ALLOWED_ORIGINS = [
'https://example.org'
]

К моему удивлению, ничего не произошло, и браузер успешно выполнил все запросы, которые я пробовал. Заголовок также не был включен в ответ.

Наконец, я заметил, что установка флага CORS_ALLOW_ALL_ORIGINS = True добавит заголовок Access-Control-Allow-Origin со значением *. Однако я не хочу разрешать все источники в моей конфигурации.

Я протестировал это поведение как в Chrome, так и в Firefox.

Я что-то неправильно настроил?

Некоторая дополнительная информация о моем версионировании:

  • python: 3.6
  • django: 3.1.0
  • django-cors-headers: 3.8.0
Вернуться на верх