tocdepth

2

Настройка CORS в Container Apps

По умолчанию браузеры блокируют для веб-страниц доступ к объектам сторонних интернет-ресурсов. Включение CORS поможет избежать этого ограничения и разрешить кросс-доменные запросы в ваше приложение в Container Apps.

Примеры сценариев, когда нужно использовать CORS:

  • Если запросы к приложению проходят через обратный прокси (reverse proxy server), например, Nginx. Необходимо настроить CORS, указав домен обратного прокси.

  • Если в приложении фронтенд и бэкенд располагаются в разных доменах (контейнерах). Например, бэкенд предоставляет API для фронтенд-приложения. Фронтенд-приложение обращается к бэкенду по URL. В этом случае нужно включить CORS для контейнера бэкенда, чтобы разрешить доступ к API с домена фронтенд-приложения. Пример настройки CORS

Включить и настроить CORS

  1. В личном кабинете перейдите на главную страницу сервиса Container Apps.

  2. Выберите нужный контейнер из списка.

  3. (Опционально) Включите для контейнера опцию Публичный URL.

    Настройка CORS доступна только для контейнера с публичным URL-адресом. Такой контейнер может вызвать любой пользователь через HTTP-запрос без авторизации. Чтобы сгенерировать публичный URL, нажмите кнопку Редактировать, активируйте опцию Публичный URL и сохраните изменения.

    Если у контейнера есть публичный URL, пропустите этот шаг.

  4. Перейдите на вкладку CORS.

  5. Нажмите Настроить.

  6. Активируйте переключатель Совместное использование ресурсов (CORS).

  7. Заполните следующие поля и при необходимости активируйте опции.

    Поле/Опция

    Описание

    Источники

    Сторонние источники, для которых разрешены 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-символ «*» в предыдущих полях нельзя, нужно указать конкретные значения.

  8. Нажмите Сохранить.

Пример настройки 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

  1. Выберите нужный контейнер из списка.

  2. Перейдите на вкладку CORS.

  3. Выключите опцию Совместное использование ресурсов (CORS) и нажмите Сохранить.

Запустили Evolution free tier
для Dev & Test
Получить