12 Модуль - AJAX. Fetch API. CRUD -- 04 Кроссдоменные запросы Flashcards
Обычно HTTP-запрос можно делать только
в рамках текущего сайта. При попытке использовать другой домен/порт/протокол — браузер выдаёт ошибку. Это сделано из соображений безопасности и настраивается на стороне сервера.
Если бекенд не поддерживает CORS-запросы, то фронтенд-разработчик
фронтенд-разработчик ничего не сможет с этим сделать в своем коде.
Общая идея заключается CORS в следующих шагах:
- Перед самим запросом браузер делает preflight-запрос, информируя сервер о том, что он (браузер) хочет сделать HTTP-запрос с такого-то адреса.
- Сервер возвращает preflight-ответ, в котором разрешает или запрещает делать запрос, зависит от настроек сервера.
- Если сервер разрешил делать запрос, браузер делает оригинальный запрос и получает ответ сервера.
- Если сервер запретил запрос, в консоли браузера можно будет видеть информацию о CORS-ошибке во время попытки запроса.
https: //prnt.sc/10s0kv6
- Если сервер запретил запрос, в консоли браузера можно будет видеть информацию о CORS-ошибке во время попытки запроса.
Если API публичный, доступ будет открыт всем
Access-Control-Allow-Origin:
*
Во время запроса браузер может добавлять заголовок ………., указывая на то, откуда был взят оригинальный HTML-файл.
Origin
https://prnt.sc/10s0lz2
Тогда сервер в ответ вернет заголовок Access-Control-Allow-Origin, в котором будут указаны адреса с правами доступа к API. Значениями могут быть
определенные адреса, либо * — доступ разрешен с любого адреса.
https://prnt.sc/10s0ml4