Использование JQuery для доступа к SonarQube Web API - PullRequest
0 голосов
/ 31 мая 2018

Моя цель - предоставить странице панели инструментов (html) определенные метрики для списка проектов.Для этого я планирую использовать JQuery для извлечения и отображения этих метрик.

Итак, я пытаюсь настроить функцию JQuery для извлечения данных из SonarQube Web API для данного компонента,и у меня проблемы с получением авторизации правильно.Я могу получить нужные данные с помощью curl, но не могу заставить вызов JQuery работать.

Это работает (с соответствующими определениями THIS_IS_MY_TOKEN и MY_SERVER и COMPONENT):

curl -Ssu ${THIS_IS_MY_TOKEN}: "https://${MY_SERVER}/api/measures/component?component=${COMPONENT}&metricKeys=coverage"

Но когда я помещаю это в HTML-документ (с загруженным jquery / 3.3.1) и загружаю его в Chrome (с такими же определениями для каждой из переменных) - я получаю ошибку 401:

$.ajax({
    url:  `https://${MY_SERVER}/api/measures/component`,
    crossDomain: true,
    dataType: 'jsonp',
    headers: {
        'Authorization': 'Basic ' + btoa(THIS_IS_MY_TOKEN),
    },
    data: {
        component : `${COMPONENT}`,
        metricKeys : 'coverage',
    },
});

Я даже попытался пропустить токен и использовать свой логин и пароль:

        'Authorization': 'Basic ' + btoa(`${USER}:${PW}`)

Все с одинаковыми результатами -> 401.

Примечание :Инструменты разработчика Chrome показывают 401 ответ, в то время как Firefox показывает 200 - для того же кода.Поэтому я начал выгружать код ответа прямо из вызова ajax, и оба браузера соглашаются: 404.

Дальнейшее тестирование - я использовал инструменты разработчика Chrome для копирования как cURL запроса ивставил его в командную строку (со всеми его великолепными заголовками).Мне пришлось добавить -u ${THIS_IS_MY_TOKEN}: к запросу, так как копирование / вставка не включало заголовок Authorization (это известно из соображений безопасности?) - и это сработало!

Для меня этоэто просто еще одно доказательство того, что это проблема с тем, как я добавляю заголовок.

Есть ли какие-либо подсказки относительно того, чего мне не хватает в JQuery?

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