Django CORS - localhost с любым портом

Столкнулся с проблемой CORS в моем приложении Django.

Я настроил его правильно и свел проблему к моему списку URLS - настройки CORS_ORIGIN_ALLOW_ALL = True устраняют ее.

Вот мой текущий список:

CORS_ALLOWED_ORIGINS = [
    "http://localhost",
    ...
]

Моим фронт-эндом является приложение Flutter, проблема в том, что при разработке Flutter запускается на любом произвольном порту, например, localhost:12345, поэтому я не могу жестко указать это в списке CORS.

Мой вопрос заключается в следующем - как я могу добавить localhost с любым произвольным портом в список? Я не могу найти документацию по этому вопросу, единственной альтернативой кажется просто разрешить все, чего я бы предпочел не делать.

Заранее спасибо!

Я действительно понял, как решить это сразу после публикации.

Пакет django-cors-headers также поддерживает regex-сопоставление. В итоге я использовал следующее:

CORS_ALLOWED_ORIGIN_REGEXES = [
    # match localhost with any port
    r"^http:\/\/localhost:*([0-9]+)?$",
    r"^https:\/\/localhost:*([0-9]+)?$",
]

Это будет соответствовать "https://localhost:" и "http://localhost:".

Надеюсь, это кому-нибудь поможет!

Вернуться на верх