JIRA REST API cors

时间:2016-10-23 09:33:53

标签: rest cors jira

尝试使用JIRA ReST API时,我一直收到以下CORS错误:

  

无法加载Fetch API   https://jira.our-domain-name.com/jira/rest/api/2/search?jql=project=tcc%20and%20cf[10809]~8423362。   对预检请求的响应没有通过访问控制检查:否   '访问控制允许来源'标题出现在请求的上   资源。起源' https://application-url.our-domain-name.com'因此是不允许的   访问。如果不透明的响应满足您的需求,请设置请求   模式为' no-cors'在禁用CORS的情况下获取资源。

但是,当我将其直接粘贴到浏览器中,或通过Postman运行或从命令行使用CURL时,此搜索URL的工作率为100%。

我的应用正在使用javascript fetch API调用API。我在发出GET请求时设置了以下标题:

headers: {
    "content-type": "application/json",
    "authorization": "Basic <<encrypted>>"
}

我已确保请求主机已在JIRA管理员中白化 - 我已使用白名单页面上的测试功能测试了主机。

当我将白名单从通配符更改为域名时,我突然得到了这个:

  

无法加载Fetch API   https://jira.our-domain-name.com/jira/rest/api/2/search?jql=project=tcc%20and%20cf[10809]~8423362。   不允许请求标头字段授权   预检响应中的Access-Control-Allow-Headers。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您有2个选择。

最简单的方法是通过后端代理请求(如果可能的话),因为对浏览器中运行的JavaScript实施了CORS限制。

另一种方式是reconfigure the Tomcat server运行Jira以支持发送CORS标头。 如果操作不当,可能还会带来其他安全隐患。