#node.js #sonarqube #jsonp
#node.js #SonarQube #jsonp
Вопрос:
Я работаю над веб-приложением, которое не может получить данные с сервера SonarQube, потому что браузер жалуется на это No 'Access-Control-Allow-Origin' header is present on the requested resource
. После поиска рекомендуемый способ преодоления этой ошибки — использовать JSONP
или CORS
. Я не могу найти документацию, касающуюся обратных вызовов JSONP. Является ли эта функция частью сервера SonarQube?
Альтернативное решение, которое я нашел для решения этой проблемы
Использование обратного прокси для обработки запросов API и их обслуживания с заголовками CORS. Использование cors-anywhere
пакета для этого.
Ответ №1:
Если вы хотите получить данные с удаленного сервера SonarQube и использовать их в веб-приложении, единственный способ на данный момент — получить их на стороне сервера, а затем передать результат вашему интерфейсу.
Комментарии:
1. Не могли бы вы объяснить немного подробнее, пожалуйста? Если я запускаю приложение Angular в Node, вы имеете в виду, что Node должен извлекать json из веб-API?
2. Я имею в виду, что код, который выполняет вызовы WS, не должен запускаться в веб-браузере, иначе вы столкнетесь с той же проблемой происхождения.
Ответ №2:
ПРИМЕЧАНИЕ: для приведенных ниже способов вам потребуется разрешить ПОЛИТИКУ ПЕРЕКРЕСТНОГО ПРОИСХОЖДЕНИЯ
существует способ удаленной выборки данных SonarQube.
-
вы можете попробовать собирать данные с помощью CURL. например, curl -u MY_LOGIN:MY_PASSWORD https://sonarqube.com/api/user_tokens/search
- замените детали вашего sonarqube sever, он будет извлекать данные из списка пользовательских нажатий для пользователя.
-
если вы используете сервер узлов с angular js, вы можете написать модуль с базовой аутентификацией, который попадет в нужные вам API. обратитесь к документу: https://docs.sonarqube.org/pages/viewpage.action?pageId=2752802 например, для получения списка проектов в системном API необходимо http://yourservername/api/resources
Надеюсь, это вам поможет.
Комментарии:
1. Это не пытается ответить на мой первоначальный вопрос «Поддерживает ли SQ JSONP?» Это вопрос в основном о внутренних компонентах SQ и частично о CORS (который я уже решил с помощью взлома, как указано в вопросе).