【问题标题】:angular http post - trigger jenkins build with parametersangular http post - 使用参数触发詹金斯构建
【发布时间】:2019-04-04 06:40:06
【问题描述】:

使用下面的 typescript 函数来触发 jenkins 构建 -

  httpOptions = {
    headers: new HttpHeaders({
   'Content-Type':  'application/json',
   'Authorization': 'Basic ' + btoa('username:password'),
   })
  };
triggerJenkinsJob(productname:string):Observable<any>{
   console.log("service called")
   var url = "http://jenkinsbox:30000/job/demo/buildWithParameters?project_name=demo"
   return this.http.post(url,this.httpOptions)
   .pipe(map(function(item){
     console.log(item)
   }))
 }

使用上面的代码,jenkins 盒子上没有执行任何操作。我已经尝试在浏览器上运行以下 URL,效果很好。

http://jenkinsbox:30000/job/demo/buildWithParameters?project_name=demo

【问题讨论】:

    标签: angular http jenkins post jenkins-api


    【解决方案1】:

    如果您的问题是为什么 triggerJenkinsJob('demo').subscribe() 不符合预期,您应该阅读浏览器控制台中的日志。

    第一个问题应该是CORS。如果 Jenkins 存在 CSRF 保护问题,您可能会遇到第二个问题

    【讨论】:

    • 我已经安装了 CORS 支持插件并添加了源头,那里的标题。仅供参考,我已经使用了/api/json。获取请求已经在工作。 CSRF 保护 - 我也尝试过使用标题传递 Jenkins-Crumb。
    • 浏览器的开发者工具控制台/网络中POST请求的状态/错误是什么?
    猜你喜欢
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    相关资源
    最近更新 更多