我对此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'对
答案 0 :(得分:1)
尝试此代码:
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
},
答案 1 :(得分:0)
return this.http.put(some_url, body);
应该工作。
答案 2 :(得分:0)
请确保在subscribe()
之后调用put()
,否则将根本不会执行该请求。