Может ли использование среднего уровня в качестве API обойти CORS? - PullRequest
0 голосов
/ 01 октября 2018

Я занимаюсь разработкой приложения с использованием ReactJS, которое взаимодействует с другим приложением Enterprise (Oracle Hyperion) с использованием API отдыха, предоставленного Hyperion.Проблема в том, что этот API официально не поддерживается и не поддерживает CORS.Я попытался найти решение этой проблемы, но безуспешно.

При попытке решить другую проблему я создал приложение Python Flask и через него прошел весь обмен данными между приложением ReactJS и API Hyperion Rest.Каким-то образом это привело к исчезновению ошибки CORS.Я использовал следующий импорт и функцию в приложении Flask

from flask_cors import CORS, cross_origin

CORS(app)

Приложение ReactJS теперь связывается с приложением Flask только с помощью Axios, и все запросы выполняются без необходимости использования разрешающих плагинов CORS.

Вопрос : теперь мне нужно знать, как это возможно, потому что у меня есть приказ избегать использования Python по разным причинам.Я хочу знать, как была решена проблема, чтобы она не появлялась, когда я переписываю эту часть на другом языке или даже устраняю ее.Решает ли использование API в середине проблему CORS или как?

1 Ответ

0 голосов
/ 01 октября 2018

Заголовки Cors, отправленные сервером, проверяются клиентом, поэтому именно клиент применяет Cors.Существуют плагины для браузера, чтобы отключить cors, но это не рекомендуется по соображениям безопасности.Обычный способ решения этой проблемы - использование обратного прокси-сервера и добавление соответствующих заголовков ответов HTTP Access-Control к ответам.Таким образом, вы можете избежать использования python, используя обратный прокси (например, nginx / apache).API не имеет к этому никакого отношения, фактически в вашем случае вы используете флеш как обратный прокси, который добавляет заголовки cors.Вы можете отладить это с помощью инструментов разработчика вашего браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...