Я работаю над веб-приложением Angular.Мне нужно сделать запрос POST с телом XML на сервер, который я не могу контролировать.Для запроса требуется заголовок Authorization
.Я попробовал следующее:
- Отправить запрос напрямую: Работает только тогда, когда приложение обслуживается на
http://localhost
.В противном случае браузер отображает следующую ошибку: Access to XMLHttpRequest at 'server.com' from origin 'my-server.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
. - Использовать расширение браузера, которое добавляет отсутствующий заголовок к ответам: Небезопасно, поскольку расширение добавляет
Access-Control-Allow-Origin: *
к ответам от всехдомены и этот заголовок разрешает запросы от любого домена. - Отключить защиту браузера: Я запустил Chrome с помощью этой команды:
chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
.Работает, когда приложение работает на сервере HTTPS.Однако это небезопасно по тем же причинам, что и для предыдущего подхода. - Использовать сторонний прокси: Работает для нескольких запросов, но сервер блокирует IP прокси, потому что запросыиз всех клиентов проходят через один и тот же прокси.
Мой проект требует обходить безопасность браузера без ущерба для безопасности несвязанных доменов.Мой проект также требует, чтобы каждый клиент отправлял на сервер разные IP-адреса.Это необходимо для того, чтобы, если клиент злоупотреблял этой функцией, это не влияло на других клиентов.
Можно ли добавить Access-Control-Allow-Origin: my-server.com
ко всем ответам или добавить заголовок только для определенного сервера?Можно ли перенаправить каждый запрос на другой IP-адрес, чтобы сервер не блокировал все мои клиенты?Есть ли другие обходные пути?