Может ли REST API работать как ПРОКСИ для решения проблем CORS? - PullRequest
0 голосов
/ 10 декабря 2018

Моя проблема заключается в следующем:

Я разрабатываю веб-приложение с Angular.Angular приложение запускается в браузере клиента.По своей логике моему приложению нужны данные с other-domain.com .Я не могу использовать напрямую XMLHttpRequest () из-за проблем с политикой CORS.(Веб-сервер other-domain.com , производящий данные, не является моим доменом и не может добавить «Control-Access-Allow-Origins»)

Поэтому вместо:

Angular === >> other-domain.com (запрещено из-за CORS)

Я создаю REST API, который будет получать данные от other-domain.com и переносит этоданные с заголовком «Access-Control-Allow-Origin»: «*» перед отправкой клиенту в Angular.

Таким образом, мой рабочий процесс становится:

Angular == >> мой сервер API ==>> other-domain.com (разрешено, потому что запрос на другой домен не выполняется в браузере)

Как вы думаете, моя идея хорошо работает навсегда (GET, POST, добавление заголовка cookie)?В этом случае API, который я разрабатываю, действует как прокси, верно?

Спасибо

1 Ответ

0 голосов
/ 10 декабря 2018

Краткий ответ: да.Фактически, есть пакеты и сайтов , которые сделают это для вас.

Но я думаю, что другой вопрос заключается в том, почему у вас есть необходимость обойти ограничения CORS.В конце концов, он работает так, как задумано, и в первую очередь существует причина его существования.

Если у вас уже есть бэкэнд, можете ли вы добавить конечную точку, где ваш бэкэнд будет выполнять вызов в другой домен,и оставить браузер для связи только внутри вашего домена?

Если вы выполняете только RESTful GET, и непрозрачный запрос (без учетных данных, файлов cookie и т. д.) подойдет вашим потребностям, вы также можете просто использовать Получить API с {mode: 'no-cors'};тем не менее, вам нужно «обойти» HttpClient, чтобы сделать это, и вам потребуется полифилл, если вам нужна поддержка IE.

...