我正在尝试利用jQuery AJAX将动态数据发布到JIRA中。我们的想法是通过" rest / api / 2 / issue /"来发布到JIRA REST API。
我相信我的所有jQuery都已正确布局。我遇到问题的问题是" XSRF令牌检查"执行时每当我尝试运行我的代码时,它都会返回" XSRF令牌检查失败"来自服务器。
我已经读过关于" X-Atlassian-Token"头。我把它作为我的jira服务器配置上的允许标头。即...
'标题始终设置Access-Control-Allow-Headers" X-Atlassian-Token,Authorization,Content-Type"'
我还在我的AJAX请求上设置了标头。 " X-Atlassian-Token":" no-check"
有人可以协助我让它正常工作吗? 测试的JIRA版本是6.4.12。
我目前的AJAX代码如下所示。
$.ajax({
url: "https://my-jira-host.com/rest/api/2/issue/",
type: "POST",
async: false,
headers: {
"X-Atlassian-Token": "nocheck",
"Content-Type": "application/json",
"Authorization": "Basic " + btoa("<username>:<password>")
},
crossDomain: true,
dataType: "json",
data: JSON.stringify({"fields":{"project":{"key":"CLS"},"priority":{"name":"Minor"},"customfield_17125":{"value":"<Department>"},"customfield_17127":"<HOSTNAME>","customfield_17126":{"value":"<Object>"},"issuetype":{"name":"<issue-type>"},"customfield_17128":"dsfgfdsg","summary":"Department | HOSTNAME | Object","description":"sdfgfdg"}}),
success: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("POST was a success!");
console.log("HTTP Error Message: " + XMLHttpRequest.responseText);
console.log("HTTP Status: " + XMLHttpRequest.status);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("POST was a failure!");
console.log("HTTP Error Message: " + XMLHttpRequest.responseText);
console.log("HTTP Status: " + XMLHttpRequest.status);
}
});
我还应该提一下,这段代码是从我在内部创建的客户网站发送的。客户端前端和JIRA主机都在同一个内部网络上。
答案 0 :(得分:0)
XSRF(跨站请求伪造)是Jira用来防止用户被欺骗提交恶意数据的安全功能。
如果您使用的是Firefox或Chrome,则可能需要将User-Agent设置为虚拟值,如下所示:
headers: {
"X-Atlassian-Token": "nocheck",
"Content-Type": "application/json",
"Authorization": "Basic " + btoa("<username>:<password>"),
"User-Agent": "xx"
},