CORS - это в первую очередь надстройка над браузером и как уже выше было сказано, когда браузер пытается отправить POST-запрос на сервер, с которым в рамках данной сессии он не работал (т.е. сервер, которые в терминах CORS не является Origin), то браузер вначале посылает Preflight-request (тип OPTIONS), который должен вернуть необходимые заголовки Access-Control-*-* для того, чтобы браузер смог выполнить POST-запрос (именно браузер выполнить, а не сервер принять).
Если у вас задача обеспечить такой CORS-доступ для сотен, тысяч пользователей (т.е. типичный сайт, который должен брать данные с другого сервера), то в этом случае на сервере 2 вам необходимо настроить, чтобы веб-сервер отдавать необходимые заголовки в случае обращения с Origin = вашему серверу 1 (т.е. они друг другу доверяют).
А если, например, у вас какая-то другая задача, например с localhost пытаться обратить вначале к серверу 1, а потом с этого localhost обратиться к серверу 2 (с браузера, конечно), то как правило в браузерах можно отключить CORS. Например, для Google Chrome, его нужно запустить так: "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --disable-gpu --user-data-dir="D:\ChromeTemp"
|