我正在编写一个网页,以使其他人可以使用jenkins中的参数来触发某些作业的构建。所以我用ajax发送POST请求:

var urlString = "http://localhost:8080/job/myjob/buildWithParameters";

$.post(
    urlString,
    {myParam:"there is some data"},
    function(data)
    {
        alert(data);
    },
    "json"
);


但是我得到了Http 403响应:


XMLHttpRequest无法加载http://localhost:8080/job/myjob/buildWithParameters。所请求的资源上没有“ Access-Control-Allow-Origin”标头。因此,不允许访问源'http://localhost'。响应的HTTP状态码为403。


我知道跨站点问题,但是我无法从Google搜索任何有用的信息,ajax可以完成这项工作吗?

更新:
我发现了一个similar question

所以我将代码更新为:

$.ajax({
    type: "POST",
    url: urlString,
    dataType: 'jsonp',
    data: {},
    beforeSend: function(xhr){
        xhr.setRequestHeader("Authorization", "Basic " + btoa("admin:123456"));
    },
    success: function(data) {
    },
    complete: function(xhr, statusText){
    }
});


我可以确认用户名和密码正确,但是却得到了405 Method Not Allowed。有什么问题吗?

最佳答案

将您的网页放在$ JENKINS_HOME目录下的userContent文件夹中。然后在浏览器中打开$ JENKINS_URL / userContent / yourwebpage.html。现在,页面中的javascript是从ajax调用的来源开始加载的,因此应该允许它而没有CORS技巧。

10-05 17:47
查看更多