CORS (Cross-Origin Resource Sharing) — це механізм, за допомогою якого сервер повідомляє браузеру, яким сайтам дозволено читати його відповіді.
Уявімо, що ми розробляємо інтернет-магазин:
- Frontend працює на
shop.com. - Backend — на
api.shop.com.
Коли сайт запитує список товарів, браузер бачить, що запит іде на інший домен. За замовчуванням він не дозволить JavaScript прочитати відповідь без дозволу від сервера.
Тут і потрібен CORS. Backend додає до відповіді спеціальний заголовок, який фактично означає: «Я дозволяю сайту shop.com читати мої відповіді». Браузер перевіряє цей дозвіл і передає дані коду сайту.
Якщо дозвіл відсутній або налаштований неправильно, у консолі з’являється знайома CORS error.
Навіщо це потрібно?
Щоб код випадкового сайту, який ти відкрив, не міг вільно читати дані з інших сайтів, де ти авторизований.
Важливий нюанс: ці обмеження застосовує браузер. CORS не замінює авторизацію та не забороняє звертатися до API через Postman або з іншого сервера.