问题描述
我对此CURL请求有疑问。如果我通过终端发送它,效果很好,但是当我将其转换为Angular HTTP Client调用时,它不起作用。
卷曲:
curl --location --request PUT '<some_url>' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"status": "CONFIRMED"
}'
角度:
const headers = new HttpHeaders()
.set('Content-Type','application/json')
.set('Accept','application/json; charset=UTF-8');
const b = {
status: 'CONFIRMED'
};
return this.http.put(some_url,b,{ headers });
错误:
从起点'http:// localhost:4200'对
解决方法
尝试此代码:
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/json','Accept','application/json; charset=UTF-8'
}),};
const b = {
status: 'CONFIRMED'
};
return this.http<any>(some_url,b,httpOptions)
.pipe(catchError(this.errorHandler));
使用proxy.config.json文件
{
"/api/*": {
"target": "http://backendurl","secure": false,"changeOrigin": true
}
}
在serve->选项下添加代理配置angular.json:
"serve": {
"builder": "@angular-devkit/build-angular:dev-server","options": {
"browserTarget": "your-application-name:build","proxyConfig": "src/proxy.conf.json" // add this ligne
},
,
return this.http.put(some_url,body);
应该工作。
,请确保在subscribe()
之后调用put()
,否则将根本不会执行该请求。