Помилка CORS (Cross-Origin Resource Sharing) — це механізм безпеки браузера, який обмежує можливість відправляти запити з одного домену (origin) на інший. Якщо сервер не налаштує політику CORS правильно, браузер заблокує запит, і виникне CORS error.
Помилка CORS зазвичай виникає під час розробки програмного забезпечення і є однією з найпоширеніших помилок. Її основна причина полягає в тому, що фронтенд, який знаходиться на одному домені, відправляє запити до бекенду, що знаходиться на іншому домені, тобто здійснюється звернення через API.
Приклад: ви перебуваєте на фронтенді сайту https://example.uz, і вам потрібно звернутись до API бекенду, який знаходиться на https://exml.uz. Коли ви відправляєте запит, ваш браузер видасть помилку CORS через різницю в доменах.
Ця помилка найчастіше трапляється при використанні методів, відмінних від GET. Перевірка в браузері здійснюється для забезпечення безпеки між доменами, щоб запобігти надмірним або неналежним запитам між різними доменами.
Рішення:
- Налаштувати CORS на бекенді;
- Додати proxy на фронтенді (наприклад, в React, Vue);
- Виправити налаштування nginx на сервері, де знаходиться бекенд.
Ці рішення можуть допомогти в специфічних випадках. Якщо ви фронтенд-розробник, ця помилка часто виникає, коли ви робите запит з localhost на домен, де знаходиться бекенд. Якщо ваш фронтенд буде розміщений на тому ж домені в production, найкраще рішення для вас — це використання proxy (два методи).
Перекладено з: CORS error nima?