объясни cors --простыми-словами

CORS
Самая непонятная ошибка, с которой сталкивается новый билдер, звучит так: "blocked by CORS policy." Будто ты сделал что-то незаконное. Нет. Твой браузер просто сверяет список гостей.
Эта штука плавит мозг, потому что ошибка вроде бы обвиняет тебя, хотя правило даже не твое, чтобы ты мог его нарушить. Давай накроем стол с фронтендом и бэкендом. У твоего приложения есть фронтенд, часть, которая работает в браузере (зал ресторана), и он хочет что-то от бэкенда в другом месте (кухня другого сайта). Допустим, твой сайт mysite.com хочет забрать данные из другого сервиса на api.othersite.com.
Вышибала и список гостей. У каждого бэкенда на двери стоит вышибала со списком, какие другие сайты могут говорить с ним изнутри браузера. Когда твой фронтенд пытается вызвать api.othersite.com, браузер тихо подходит к этому вышибале сначала и спрашивает: «mysite.com есть в твоем списке?»
- Есть в списке — тебя пропускают, данные возвращаются.
- Нет в списке — "blocked by CORS policy." Развернули у двери.
**Вот поворот, после которого все щелкает: это браузер следит за правилом, и он делает это, чтобы защитить тебя.** CORS расшифровывается как Cross-Origin Resource Sharing, и это можно сразу забыть. Это правило безопасности, встроенное в каждый браузер. Оно нужно, чтобы мутный сайт, на который ты случайно зашел в одной вкладке, не мог тихо отправлять запросы в твой банк в другой вкладке, пользуясь тем, что ты там уже залогинен. Браузер работает твоим телохранителем. Просто пишет отказ так, будто подозреваемый — ты.
Признак, который доказывает, что это CORS. Посмотри, что происходит, когда ровно тот же вызов делает что-то кроме браузера. Агент, который вызывает этот API, или команда, которую ты запускаешь в терминале, получает данные без всякой CORS-ошибки. Нет браузера посередине, нет вышибалы, нет списка гостей. CORS — чисто браузерное правило. Так что если вызов работает из терминала, но умирает в веб-приложении, почти всегда дело в нем.
И чинится это обычно не на твоей стороне. Другой сайт должен добавить твой сайт в свой список гостей, маленькой настройкой: «mysite.com разрешен». Если ты владеешь обеими сторонами, добавляешь сам. Если другой конец не твой, стандартный ход — перестать дергать его прямо из браузера и провести запрос через свой бэкенд, сервер к серверу, где вышибалы вообще нет.
CORS не наказывает тебя. Это твой браузер спрашивает вышибалу другого сайта, есть ли ты в списке. Исправление — попасть в список, а не кричать на дверь.