将cURL转换为angular 2 HTTP POST

时间:2016-12-12 15:48:37

标签: javascript angularjs angular curl postman

我想将此cURL转换为角度2张贴后请求

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: Basic cGJob2xlOmlJelVNR3o4" -H "Origin: http://localhost:4200/form" -H "Postman-Token: fbf7ede1-4648-a330-14ee-85e6c29ee80d" -d 'content=Queue: tsi-testdesk' "https://testdesk.ebi.ac.uk/REST/1.0/ticket/new?user=USER&pass=PASS"

这是我写的代码,但它不起作用。

 addForm(form: Form): Observable<Form> {
     console.log(" SUBMITTING FORM");
    let headers = new Headers();
    this.loginService.writeAuthToHeaders(headers);
    // JSON.stringify(headers);
    // headers.append('Accept', 'application/x-www-form-urlencoded');
    headers.append('Content-Type', 'application/x-www-form-urlencoded');
    // let text = JSON.stringify(form)
    let content = ('content:Queue: tsi-testdesk');
    console.log(content);
     return this.http.post('https://testdesk.ebi.ac.uk/REST/1.0/ticket/new?user='+this.credentialsService.getUsername()+'&pass='+this.credentialsService.getPassword(), content, { headers: headers })
      // .map(response => <Form>response.json())
      .catch(this.handleError);
   }

它给了我飞行前响应失败错误,但它适用于cURL以及POSTMAN 而且我也没有访问服务器端我通过API联系它

1 个答案:

答案 0 :(得分:0)

CORS是由网络浏览器强制执行的政策。最终,它取决于浏览器,无论它是否允许跨源请求。在cURL或Postman的情况下,没有浏览器,没有当前的HOST,因此甚至没有跨源请求的概念。技术上Postman是一个Chrome扩展程序,但它与加载网页和发出跨源请求完全不同。

面向公众的API(可能与您尝试访问的API)已经启用了CORS。可能的罪魁祸首是你自己的服务器。您必须在Web服务器上启用CORS请求,以便它允许您向外部API发出请求。