Ответ
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).