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