我们的构建生成一个网页,允许最终用户更轻松地基于原始构建启动新构建。这是一个例子:
<head>
<title>Build Links</title>
<script>
function runNewBuild()
{
xmlhttp= new XMLHttpRequest();
xmlhttp.open("POST","/view/MyView/job/MyJob/buildWithParameters?Parm1=Razz&Parm2=Zazz");
xmlhttp.send()
}
</script>
</head>
<form onsubmit="return false;">
<button onClick="runNewBuild()">Run New Build</button>
</form>
html文件存储在构建工作区中并从中进行访问。例如。网址是:
https://jenkins.myCompany.com:8081/job/MyJob/ws/SomeDir/build_links.html
这在1.9中运行良好,但现在升级后失败了。我通过设置修正了一些问题:
System.setProperty(&#34; hudson.model.DirectoryBrowserSupport.CSP&#34;,&#34; sandbox allow-forms allow-scripts;&#34;)
但我仍然(使用铬检查员):
XMLHttpRequest无法加载 https://jenkins.myCompany.com:8081/view/MyView/job/MyJob/buildWithParameters?Parm1=Razz&Parm2=Zazz。 No&#39; Access-Control-Allow-Origin&#39;标题出现在请求的上 资源。起源&#39; null&#39;因此不允许访问。响应 有HTTP状态码403。
有人可以提供一些指导吗?谷歌搜索倾向于提出与CORS相关的东西,但除非我遗漏了某些东西......这不应该是交叉起源。
答案 0 :(得分:0)
如果我没弄错的话,那就是他们添加的Content-Security-Policy标题。 请尝试将其留空。如果你是从命令行运行它,只需加载Jenkins:
-Dhudson.model.DirectoryBrowserSupport.CSP=\"\"
祝你好运!
答案 1 :(得分:0)
我得到了它的工作。有两个必要的步骤:
1)使用以下设置添加CORS插件:
Access-Control-Allow-Origins:https://jenkins.MyCompany.com:8081 Access-Control-Allow-Methods:POST Access-Control-Allow-Headers:origin Access-Control-Expose-Headers:origin
2)xmlhttp.withCredentials = true;