CORS с POSTMAN

Этот вопрос был задан пару раз, но я до сих пор ничего не понимаю:

Когда я прочитал ответы о

Нет заголовка "Access-Control-Allow-Origin"

он говорит, что параметр должен быть установлен на запрошенном сервере, чтобы разрешить перекрестный домен: add_header 'Access-Control-Allow-Origin' '*';.

Но, пожалуйста, скажите, почему, когда вы спрашиваете у postman (который является клиентом), он работает как шарм, и у меня есть ответ от запрошенного сервера?

Спасибо

Ответы

Ответ 1

Как замечает @Musa, кажется, что причина в том, что:

Postman не заботится о SOP, это инструмент разработчика не браузер

Кстати, chrome extension, чтобы заставить его работать в вашем браузере (этот для хром, но вы можете найти либо для FF или Safari).

Проверьте здесь, если вы хотите узнать больше о Cross-Origin и о том, почему он работает для расширений.

Ответ 2

Если вы используете веб-сайт и вы заполняете форму для отправки информации (например, номер вашего социального страхования), вы хотите быть уверенным, что информация отправляется на сайт, на который вы думаете, его отправили. Поэтому браузеры были созданы, чтобы сказать по умолчанию: "Не отправляйте информацию в домен, отличный от посещаемого домена".

В конце концов это стало слишком ограничивающим, но идея по умолчанию все еще остается в браузерах. Не позволяйте веб-странице отправлять информацию в другой домен. Но это все проверки браузера. Chrome и firefox и т.д. Создали код, который гласит: "Перед отправкой этого запроса мы будем проверять, совпадает ли пункт назначения с посещенной страницей".

Почтальон (или CURL на линии cmd) не имеет встроенных проверок. Вы вручную взаимодействуете с сайтом, чтобы иметь полный контроль над тем, что вы отправляете.

Ответ 3

SOP - это конфигурация на стороне сервера, которую клиенты решают или не выполняют. Большинство браузеров применяют его для предотвращения проблем, связанных с CSRF. Большинство инструментов разработчика не заботятся об этом.