我想将此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联系它
答案 0 :(得分:0)
CORS是由网络浏览器强制执行的政策。最终,它取决于浏览器,无论它是否允许跨源请求。在cURL或Postman的情况下,没有浏览器,没有当前的HOST,因此甚至没有跨源请求的概念。技术上Postman是一个Chrome扩展程序,但它与加载网页和发出跨源请求完全不同。
面向公众的API(可能与您尝试访问的API)已经启用了CORS。可能的罪魁祸首是你自己的服务器。您必须在Web服务器上启用CORS请求,以便它允许您向外部API发出请求。