Django Rest Framework, Swagger и CORS - PullRequest
0 голосов
/ 07 мая 2018

Я работаю над проектом в Django 1.6 со встроенным Django Rest Framework ver. 3.2.5 и совместимым Django Rest Swagger ver. 0.3.6. При разработке на локальном компьютере или запуске проекта из Docker-контейнера Swagger правильно отображает описания конечных точек, но при открытии URL-адреса описания API на удаленном сервере я получаю:

Can't read from server. It may not have the appropriate access-control-origin settings.

enter image description here

Из вопросов с похожей проблемой я обнаружил, что эту проблему можно решить, установив django-cors-headers .

Я добавил corsheaders в INSTALLED APPS, 'corsheaders.middleware.CorsMiddleware' в MIDDLEWARE_CLASSES и CORS_ORIGIN_ALLOW_ALL = True в настройках проекта, но я все еще получаю то же сообщение, что и раньше, как мне настроить corsheaders для разрешения этот вопрос?

Примечательно: если я изменяю протокол в swagger path на https, я вижу конечные точки: replaced http with https

Но описания не расширяются, и есть определенный тип ошибки для каждой конечной точки в консоли: enter image description here

1 Ответ

0 голосов
/ 17 мая 2018

Я решил эту проблему, включив https (в моем файле docker-compose):

HTTPS=on

И, установив SSL в конфигурации nginx:

proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Ssl $https;
...