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

Параметр max_age

Параметр max_age передаётся в конструктор класса CORSMiddleware и управляет заголовком Access-Control-Max-Age в ответе на preflight-запрос. Значение указывается в секундах и сообщает браузеру, как долго можно не повторять проверочный OPTIONS-запрос к серверу. По умолчанию параметр равен 600 секундам.

Если браузер уже получил preflight-ответ и закешировал его, повторные CORS-запросы к тому же ресурсу в течение указанного времени не будут сопровождаться дополнительным OPTIONS-запросом. Это снижает нагрузку на сервер и ускоряет работу клиента.

Синтаксис

from fastapi.middleware.cors import CORSMiddleware app.add_middleware( CORSMiddleware, max_age=600, )

Пример

Давайте подключим CORSMiddleware с параметром max_age, равным 3600 секундам:

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

Теперь при preflight-запросе сервер вернёт заголовок Access-Control-Max-Age: 3600, и браузер закеширует разрешение на час.

Пример

Давайте зададим минимальное значение max_age, равное 0, чтобы браузер выполнял preflight-запрос при каждом обращении:

from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=['http://localhost:3000'], allow_methods=['*'], allow_headers=['*'], max_age=0, ) @app.get('/user') def user(): return {'name': 'abcde'}

Результат выполнения preflight-запроса:

{"Access-Control-Max-Age": "0"}

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

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