我正在开发合流蓝图,用户可以在其中选择 jira 项目并将它们用于特定的 jira 问题报告。
两个实例相互正确连接,我得到结果,但前提是我以管理员身份登录。对于普通用户,我得到了这个:
<status>
<status-code>401</status-code>
<message>This resource requires WebSudo.</message>
</status>
不幸的是,我必须从 jira 服务器获取信息作为使用 javascript 的 ajax 发布请求,这是我的代码:
function pickDate(e, state) {
AJS.$('#spLebenStart').datePicker({
overrideBrowserDefault: true
});
getJiraUrl();
}
function getJiraUrl(){
var appUrl = AJS.contextPath() + "/rest/applinks/1.0/applicationlink/type/jira";
$.ajax({
type: 'GET',
url: appUrl,
data: {
key: "value"
},
dataType: "xml",
success: function (xml){
jiraID = $(xml).find("id").text();
},
complete: function(){
getJiraProjects(jiraID);
},
error: function() {
alert("ERROR @ getJiraUrl");
}
});
}
function getJiraProjects(applicationId){
var restUrl = AJS.contextPath() + "/rest/applinks/1.0/entities/"+applicationId+"?os_authType=any";
$.ajax({
type: 'GET',
url: restUrl,
data: {
key: "value"
},
dataType: "xml",
success: function (xml){
jiraProjectKeys = [];
$(xml).find("entity").each(function(){
jiraProjectKeys.push({id: $(this).attr("key"), text: $(this).attr("name")});
});
},
crossDomain: true,
xhrFields: {
withCredentials: true
},
error: function() {
alert("ERROR @ getJiraProjects");
},
complete: function(){
AJS.$('#spSelect').auiSelect2({
placeholder: 'Projekt auswählen...',
data:jiraProjectKeys,
multiple: false
});
}
});
}
我曾尝试在 ajax 中使用具有基本身份验证的登录信息,但它没有帮助。当然我可以在代码中硬编码 id 但是如果它被改变了怎么办?它不是海事组织的最佳解决方案。我该如何管理 websudo 问题?
谢谢你,祝你圣诞快乐,新年快乐。