Почему правильно выставлять CORS заголовки, а не настраивать локальный домен вместо http://localhost:port?

Я фронтенд разработчик с опытом бэкенда. Каждый раз приходя работать в какую-либо компанию, чаще всего встают вопросы касательно CORS заголовков. (ps: чаще всего фронтенд поднимается на http://localhost: %PORT% /) Зачастую это фиксят, выставляя соответствующие заголовки на уровне бэкенда, но бывают случаи, когда проблему делегируют на системных администраторов, которые в свою очередь приходят к фронтенду и говорят, почему бы тебе не решить вопрос локально: сделать локально домен (аналогичный stage-овскому или еще лучше продовскому), притворяться что с него шлёшь запросы и всё будет ок? Хочу услышать ваши аргументированные мнения касаемо данного вопроса. Почему так делать плохо или хорошо. Спасибо. PS: Моё субъективное мнение:

  1. Решение вопроса со стороны сервера - универсально. Порог вхождения разработчика в проект снижается. Каждому новому разработчику не нужно заморачиваться с тем, чтобы разворачивать локальный домен посредством консоли в unix / или блокнота на винде. По времени на фронте это может занимать от 20 минут до двух часов условно (для тех, у кого меньше опыта работы в терминале). Решение со стороны сервера делается разово и навсегда. Делается быстро (при условии, что администратор или (бэкенд разработчик знает, как))
  2. Одного домена недостаточно. Для каждого проекта и домена, который будет разворачиваться локально - также потребуется выпуск самоподписанного SSL сертификата.
  3. Для того, чтобы поднимать таким образом проекты необходимо редактировать сборки, дополнять команды запуска тем, чтобы они подтягивали сертификат (который кстати также необходимо локально на каждом устройстве класть в проект, и добавлять в условный .gitignore, чтобы тот не улетел в scm), и редирект на необходимый домен. Также команды запуска должны быть кроссплатформенными, в случае если проект будет подниматься на других платформах (или добавлять разные команды запуска).
  4. Часто возникают конфликты: если в заголовках origin указан один stage/prod, и локально мы добавляем такой же домен, фронт не имеет доступа к реальному домену, вместо этого он попадает на локальный.
  5. (не то чтобы причина, но всё же) Если представить, что проект может быть с публичным API, считаю невозможным каждого клиента (и его разработчиков) заставлять делать действия по развёртыванию домена локально. Хотя если представить ту же самую ситуацию в большом проекте, условно даже на 50 фронтенд разработчиков, то сколько человеко-часов будет потрачено на эти действия (для каждого проекта).
  6. Далеко не каждый фронтенд разработчик с радостью и без споров будет выполнять эти действия.

Ответы (0 шт):