Підготовчий запит
Підготовчий запит CORS (попередній запит, передполітний запит) – це запит CORS, який перевіряє, чи розуміє сервер протокол CORS, за допомогою певних методів і заголовків.
Це запит OPTIONS
, що використовує два або три заголовки запиту HTTP: Access-Control-Request-Method
, Origin
і, за потреби, Access-Control-Request-Headers
.
Підготовчий запит автоматично надсилається браузером, і, як правило, розробники фронтенду не повинні самостійно формувати такі запити. Він з'являється, коли запит вважається "таким, що потребує попередньої підготовки", і пропускається для простих запитів.
Наприклад, клієнт міг би запитати сервер, чи дозволить він запит DELETE
, перед тим, як надіслати запит DELETE
, за допомогою підготовчого запиту:
OPTIONS /resource/foo
Access-Control-Request-Method: DELETE
Access-Control-Request-Headers: x-requested-with
Origin: https://foo.bar.org
Якщо сервер це дозволяє, то він відповідає на підготовчий запит заголовком відповіді Access-Control-Allow-Methods
, який містить DELETE
:
HTTP/1.1 204 No Content
Connection: keep-alive
Access-Control-Allow-Origin: https://foo.bar.org
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Allow-Headers: X-Requested-With
Access-Control-Max-Age: 86400
Підготовчий запит може за потреби кешуватися для запитів, створених за допомогою того самого URL, за допомогою заголовка Access-Control-Max-Age
, як у прикладі вище. Для кешування підготовчих відповідей браузер використовує окремий кеш, окремий від загального кешу HTTP, яким керує. Підготовчі відповіді ніколи не кешуються в загальному кеші HTTP браузера.