Использование JQuery для доступа к SonarQube Web API

Моя цель - предоставить страницу панели инструментов (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?

0 ответов

Другие вопросы по тегам