我正在编写一个网页,以使其他人可以使用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技巧。