РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
264 of 307 menu

Параметр allow_origins

Параметр allow_origins передаётся в класс CORSMiddleware и определяет список доверенных источников (origin) для CORS-запросов. Источник - это комбинация схемы, домена и порта, например 'http://localhost:3000'. Если браузер отправляет запрос с источника, которого нет в этом списке, ответ не получит заголовок Access-Control-Allow-Origin, и браузер заблокирует ответ для клиентского скрипта. По умолчанию список пуст, то есть cross-origin запросы запрещены. Значение ['*'] разрешает любые источники, но несовместимо с allow_credentials=True.

Синтаксис

from fastapi.middleware.cors import CORSMiddleware app.add_middleware( CORSMiddleware, allow_origins=['http://localhost:3000'], )

Пример

Давайте разрешим запросы только с одного источника:

from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=['http://localhost:3000'], ) @app.get('/') def index(): return {'text': 'hello'}

Теперь запрос с источника 'http://localhost:3000' получит заголовок Access-Control-Allow-Origin со значением 'http://localhost:3000', а запрос с любого другого источника будет заблокирован браузером.

Пример

Давайте разрешим запросы сразу с нескольких источников:

<+python+> from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=['http://localhost:3000', 'http://localhost:8080'], ) @app.get('/') def index(): return {'text': 'hello'} <-python+>

Запросы с источников 'http://localhost:3000' и 'http://localhost:8080' будут пропущены, остальные браузер заблокирует.

Пример

Давайте разрешим любые источники через звёздочку:

from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=['*'], ) @app.get('/') def index(): return {'text': 'hello'}

В этом случае сервер вернёт заголовок Access-Control-Allow-Origin со значением '*', и любой источник сможет читать ответ. Однако при allow_credentials=True такой вариант использовать нельзя.

Смотрите также

  • класс CORSMiddleware,
    который настраивает CORS-поведение приложения
  • параметр allow_origin_regex,
    который задаёт источники регулярным выражением
  • параметр allow_methods,
    который задаёт разрешённые HTTP-методы
  • параметр allow_credentials,
    который разрешает передачу учётных данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить