- tocdepth
2
Настройка CORS в Container Apps
По умолчанию браузеры блокируют для веб-страниц доступ к объектам сторонних интернет-ресурсов. Включение CORS поможет избежать этого ограничения и разрешить кросс-доменные запросы в ваше приложение в Container Apps.
Примеры сценариев, когда нужно использовать CORS:
Если запросы к приложению проходят через обратный прокси (reverse proxy server), например, Nginx. Необходимо настроить CORS, указав домен обратного прокси.
Если в приложении фронтенд и бэкенд располагаются в разных доменах (контейнерах). Например, бэкенд предоставляет API для фронтенд-приложения. Фронтенд-приложение обращается к бэкенду по URL. В этом случае нужно включить CORS для контейнера бэкенда, чтобы разрешить доступ к API с домена фронтенд-приложения. Пример настройки CORS
Включить и настроить CORS
В личном кабинете перейдите на главную страницу сервиса Container Apps.
Выберите нужный контейнер из списка.
(Опционально) Включите для контейнера опцию Публичный URL.
Настройка CORS доступна только для контейнера с публичным URL-адресом. Такой контейнер может вызвать любой пользователь через HTTP-запрос без авторизации. Чтобы сгенерировать публичный URL, нажмите кнопку Редактировать, активируйте опцию Публичный URL и сохраните изменения.
Если у контейнера есть публичный URL, пропустите этот шаг.
Перейдите на вкладку CORS.
Нажмите Настроить.
Активируйте переключатель Совместное использование ресурсов (CORS).
Заполните следующие поля и при необходимости активируйте опции.
Поле/Опция
Описание
Источники
Сторонние источники, для которых разрешены CORS-запросы. Можно добавить несколько источников через запятую. Например: https://domain.com:8080. Источники или маска будут указаны в заголовке ответа Access-Control-Allow-Origin. Маска «*» разрешает доступ для всех сторонних источников.
HTTP-методы
Разрешенные методы запросов к целевому источнику (контейнеру). Можно указать несколько методов через запятую. Методы или маска будут указаны в заголовке ответа Access-Control-Allow-Methods. Маска «*» разрешает все методы.
Заголовки запроса
Список заголовков запросов через запятую, разрешенных при доступе к целевому источнику (контейнеру). Заголовки или маска будут указаны в заголовке ответа Access-Control-Allow-Headers. Маска «*» разрешает все заголовки.
Заголовки ответа
Список заголовков ответов от целевого источника (контейнера) через запятую. Заголовки будут доступны клиентскому коду в браузере. Они будут указаны в заголовке Access-Control-Expose-Headers. Маска «*» разрешает все заголовки.
Опция Разрешить credentials
Разрешить передавать credentials (например, cookies) в запросах к целевому источнику (контейнеру). Если credentials разрешены, целевой источник (контейнер) вернет заголовок Access-Control-Allow-Credentials. Если опция активна, то использовать wildcard-символ «*» в предыдущих полях нельзя, нужно указать конкретные значения.
Нажмите Сохранить.
Пример настройки CORS
Например, фронтенд-приложение доступно по адресу https://frontend.containers.cloud.ru. Бэкенд-приложение — по адресу https://backend.containers.cloud.ru. Фронтенд-приложение отправляет запросы к контейнеру с бэкенд-приложением, которое предоставляет API. Если не настроить CORS, то при запросе к бэкенду браузер вернет ошибку «CORS error».
Мы хотим разрешать отправку запросов GET и POST к бэкенду. Тогда настройки CORS для контейнера с бэкенд-приложением могут быть следующими:
Источники: https://frontend.domain.com
HTTP-методы: GET, POST
Заголовки запроса: *
Заголовки ответа: *
Отключить CORS
Выберите нужный контейнер из списка.
Перейдите на вкладку CORS.
Выключите опцию Совместное использование ресурсов (CORS) и нажмите Сохранить.
для Dev & Test