首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过jQuery从获取和发布数据?

如何通过jQuery从获取和发布数据?
EN

Stack Overflow用户
提问于 2015-12-01 08:18:11
回答 1查看 1.2K关注 0票数 1

我们公司正在使用JIRA6.4.5,但我很难从它的API接口中获取数据。在过去的几天里,我一直在尝试,被一个跨域问题困住了,或者我不知道用户凭证,所以我也不能做任何服务器端。

理想情况下,我有一个jQuery页面,用户将使用自己的凭据/会话查询JIRA数据。JIRA位于srv1.mydomain.xyz上,我在代码中使用srv2.mydomain.xyz作为我的REST服务器。

我读过JIRA REST引用

我尝试过各种Javascript/jQuery内容--在下面的示例中,我尝试提交一个特定问题的1小时30分钟:

代码语言:javascript
复制
$.ajax({
    url: "https://srv1.mydomain.xyz/rest/api/latest/issue/proj-3/worklog",
    dataType: "json",
    method: "post",
    data: { time: "1h 30m",
            comment: "Test" }
}).done(function(data) {
    alert("Success");
}).fail(function(jqXHR, textStatus) {
    alert("Failed");
});

我知道这个错误:

XMLHttpRequest无法加载https://srv1.mydomain.xyz/rest/api/latest/issue/proj-3/worklog?time=1h+30m&comment=Test。请求的资源上没有“访问-控制-允许-原产地”标题。因此,“https://srv2.mydomain.xyz”源是不允许访问的。响应具有HTTP状态代码401。

然后,我对此进行了更深入的研究,发现亚特兰蒂斯有一个名为“亚特兰西安连接”的东西,因此我尝试了这样的方法:

代码语言:javascript
复制
AJS.$.ajax({
    url: "https://srv1.mydomain.xyz/rest/api/latest/issue/proj-3/worklog",
    type: "post",
    dataType: "json",
    contentType: "application/json",
    xhrFields: { withCredentials: true },
    async: false,
    method: "post",
    data: { time: "1h 30m",
            comment: "Test" }
}).done(function(data) {
    alert("Success");
}).fail(function() {
    alert("Failed");
});

但我也有一个类似的错误:

XMLHttpRequest无法加载https://srv1.mydomain.xyz/rest/api/latest/issue/proj-3/worklog。对飞行前请求的响应不会通过访问控制检查:请求的资源上没有“访问-控制-允许-原产地”标题。因此,“https://srv2.mydomain.xyz”源是不允许访问的。

我还研究过是否可以在与JIRA服务器相同的域中使用启用PHP的服务器端,但是由于在执行base64时没有获得phpinfo()编码的凭据,所以我认为也不能使用这种方法(而且我不想提示用户提供凭据)。

我痛苦地意识到,我的问题与跨域保护有关,但我找不到任何如何解决它的例子。如果JIRA服务器能够为某些主机设置一个Access-Control-Allow-Origin,那就太好了,但是我假设这不是一个配置选项(我没有控制JIRA服务器)。

EN

回答 1

Stack Overflow用户

发布于 2016-04-29 04:06:53

这绝对是一个跨领域的案子。相信我,它的存在是为了你自己的保护;)

我使用的方法是将jQuery请求发送到基于服务器的处理页面,然后该页面与Jira服务器进行身份验证和交互。在您的示例中,由于srv1和srv2位于同一个域中,所以srv2 (webserver)可以使用内部In (例如https://10.50.25.87:8080/rest/api/latest/issue/proj-3/worklog)与srv1 (Jira)对话,因此跨域问题不适用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34015626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档