Корсхедеры Django + Nginx не видны для случайных конечных точек
Я разрабатываю веб-приложение с помощью Django, Vue и Docker. В течение некоторого времени я начал сталкиваться с проблемой ошибки политики CORS. Странно то, что ошибка иногда появляется, а иногда не появляется - я не могу определить, от чего она зависит.
Обычно есть некоторые изменения после перестройки всего проекта командой docker-compose up --build
, однако, я не могу выделить ни одной причины, почему я получаю ошибку CORS на сервере и localhost также.
Сообщение об ошибке выглядит следующим образом:
Access to XMLHttpRequest at 'https://api.mywebsite.com/profile/' from origin 'https://mywebsite.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Я настроил CORS для Django, вот конфигурация:
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
# ...
CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = [
'https://mywebsite.com', # Here's where the web application is
'https://api.mywebsite.com', # Here's Django API
]
Вот файл nginx.conf:
server {
listen 80 default_server;
client_max_body_size 20M;
location / {
autoindex on;
if ($request_method = OPTIONS) {
return 204;
}
add_header Access-Control-Allow-Origin "https://mywebsite.com";
add_header Access-Control-Allow-Origin "https://api.mywebsite.com";
add_header Access-Control-Max-Age 3600;
add_header Access-Control-Expose-Headers Content-Length;
add_header Access-Control-Allow-Headers Range;
}
location /static/ {
autoindex on;
alias /static/;
}
}
файл docker-compose.yml:
Я буду благодарен за любую подсказку, которая поможет мне преодолеть ошибку CORS - у вас есть идеи, что может быть причиной?