使用JQuery访问SonarQube Web API

时间:2018-05-30 22:23:57

标签: jquery sonarqube sonarqube-api

我的目标是提供一个仪表板页面(html),其中包含项目列表的特定指标。为此,我计划使用JQuery来检索和显示这些指标。

所以,我正在尝试设置一个JQuery函数来从SonarQube Web API检索给定组件的数据,并且在获取授权时遇到问题。我可以使用curl提取我想要的数据,但无法使JQuery调用。

这有效(适用于THIS_IS_MY_TOKENMY_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 个答案:

没有答案