Что такое CORS

Ответ

CORS (Cross-Origin Resource Sharing) — механизм безопасности браузеров, который разрешает или блокирует запросы между разными источниками (доменами, протоколами, портами). Без CORS браузер блокирует AJAX-запросы к другому домену из соображений безопасности.

Сервер должен явно разрешить кросс-доменные запросы, отправляя специальные заголовки:

  • Access-Control-Allow-Origin — указывает разрешенные домены (* для всех)
  • Access-Control-Allow-Methods — разрешенные HTTP-методы (GET, POST и т.д.)
  • Access-Control-Allow-Headers — разрешенные заголовки запроса

Пример простого CORS-запроса:

fetch('https://api.example.com/data', {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json'
  }
})

Для сложных запросов (например, с нестандартными заголовками) браузер сначала отправляет OPTIONS-запрос (preflight).