JIRA REST API cors

go4*_*cas 5 rest jira cors

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

Fetch API无法加载https://jira.our-domain-name.com/jira/rest/api/2/search?jql=project=tcc%20and%20cf [ 10809] ~8423362 .对预检请求的响应未通过访问控制检查:请求的资源上不存在"Access-Control-Allow-Origin"标头.因此,不允许来源" https://application-url.our-domain-name.com ".如果不透明响应满足您的需求,请将请求的模式设置为"no-cors"以获取禁用CORS的资源.

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

我的应用使用javascript fetchAPI 调用API.我在发出GET请求时设置了以下标头:

headers: {
    "content-type": "application/json",
    "authorization": "Basic <<encrypted>>"
}
Run Code Online (Sandbox Code Playgroud)

我确保请求主机已在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不允许请求头字段授权.

有任何想法吗?

Joh*_*yil 1

你有两个选择。

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

另一种方法是重新配置Jira 运行的Tomcat 服务器以支持发送 CORS 标头。如果处理不当,这可能会产生其他安全隐患。