Angular 2:jenkins的职位

时间:2017-05-15 19:17:20

标签: angular jenkins http-post

我试图将这个curl命令“隐蔽”到有角度的HTTP帖子中,我无法想象如何发送--user

此命令用于在jenkins中开始新工作:

curl -X POST'http://10.1.11.160:8080/job/Job1/buildWithParameters?GW_IP=10.1.11.51&verbosity=aaa' - 用户角度:角度

我尝试了很多东西 - 我无法添加其他标题 我正在使用来自'@ angular / http

的基本http

这是我的代码而没有添加标题

runTest(){


 var Url = "http://10.1.11.160:8080/job/";
    var JobName = "job1" + "/";
    var Parameters = 'GW_IP=10.1.11.51&verbosity=high';
    var Action = "buildWithParameters?";
    var Job = Url + JobName + Action + Parameters ; 
    var Body = '';


    return this._http.post(Job, Body)
         .map(res => res.json());
}

这就是我想要实现的目标:

enter image description here

2 个答案:

答案 0 :(得分:1)

如果我正确阅读documentation,您仍然可以使用config对象作为第三个参数设置标题。

return this._http.post(Job, Body, {headers:{'Authorization': 'whatcurlshowedyou'}})
     .map(res => res.json());

您可能还希望遵循样式指南,并使用camelCase命名您的本地人以提高可读性。

答案 1 :(得分:0)

好的,我设法解决这个问题 这是帮助其他人解决问题的解决方案:

  1. 为Jenkins安装CORS插件 https://wiki.jenkins-ci.org/display/JENKINS/Cors+Filter+Plugin

  2. 在jenkins上配置CORS支持

    • 启用
    • add:Access-Control-Allow-Methods:GET,PUT,OPTIONS,DELETE,POST - 或者只是OPTIONS,POST(我认为它会起作用)
    • add:Access-Control-Allow-Headers:Authorization
    • add:Access-Control-Allow-Origins - 根据您的需要
    • 我还要重启jenkins
  3. 以下是我使用的代码:

      

    createAuthorizationHeader(headers: Headers){ headers.append('Authorization', 'Basic ' + btoa('angular:angular')); headers.append('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); }

    runTest(){ var url = "http://10.1.11.160:8080/job/"; var jobName = "job1" + "/"; var parameters = 'GW_IP=10.1.11.51&verbosity=high'; var action = "buildWithParameters?"; var job = url + jobName + action + parameters ; var body = '';

    let headers = new Headers(); this.createAuthorizationHeader(headers);

    return this._http.post(job, body, {headers: headers}) .map(res => res.json());

    }