<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$.ajax({
type: "GET",
dataType: 'jsonp',
url: "http://myJira.com/rest/api/2/issue/MA-6614/comment",
username : "myusrName",
password : "myPwd",
success: function (data) {
console.log( "Sample of data:", JSON.stringify(data));
},
error: function (errormessage) {
console.log( "errorMessage:", errormessage);
}
});
});
</script>
</head>
<body>
</body>
</html>
运行上面的代码时,我得到 SyntaxError:missing;在陈述之前错误。 我在某处读取Access-Control-Allow-Origin应该用于解决问题。但我没有找到关于如何使用Jira的好文档。
“UPDATE”
如果我已经登录jira,我会得到上述错误。如果我在jira中注销然后运行上面的代码然后收到错误“NetworkError:401 Unauthorized - http://myjira.com/rest/api/2/issue/MA-6614/comment?callback=jQuery1102010440085066514837_1388216960965&_=1388216960966”
看来上面的代码有两个问题。 1.它无法在jira中进行身份验证。 2.如果我们已经在jira中进行身份验证(这意味着浏览器有cookie)并发出请求,则会因为jsonp而显示语法错误。
答案 0 :(得分:3)
所以我得到了答案。 jira中的支持被撤销以从javascript进行身份验证。 IITally jsonP是选项,但现在不可能。 我们必须对jira进行服务器端身份验证。 这里的例子
https://developer.atlassian.com/display/JIRADEV/JIRA+REST+API+Example+-+Basic+Authentication
答案 1 :(得分:0)
您可以使用javascript执行此操作。
function request(){
var xhr = getXHR();
xhr.addEventListener("error", transferFailed, false);
xhr.addEventListener("abort", transferCanceled, false);
xhr.open("GET", baseURL+"/rest/api/2/issue/KEY-1", false);
xhr.setRequestHeader("Authorization", "Basic "+btoa("admin:admin"))
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send();
}
确保它是同步的并且jira server conf具有:
标题始终设置Access-Control-Allow-Credentials&#34; true&#34; 标题集Access-Control-Allow-Headers&#34;授权,来源,X-Requested-With,Content-Type,Accept&#34;