我们的项目正在迁移到Angular4,并@angular/common/http Httpclient
用作默认网络工具。但我发现删除函数中没有body
参数。如何添加正文删除功能?谢谢。
问问题
47941 次
4 回答
105
request
您可以改为在 HttpClient 类上使用通用方法。此方法在选项中有正文。
https://angular.io/api/common/http/HttpClient#members
例如
this.http.request('delete', 'url', { body: ... })
于 2017-09-20T08:19:50.130 回答
29
const httpOptions = {
headers: new HttpHeaders({ 'Content-Type': 'application/json' }), body: your body data
};
return new Promise(resolve => {
this.httpClient.delete(URL, httpOptions)
.subscribe(res => {
resolve(res);
}, err => {
resolve(err);
});
});
通过使用 httpOptions,您可以在其中设置 header 和 body。请参考此https://angular.io/tutorial/toh-pt6#delete-a-hero
于 2018-04-10T07:41:56.077 回答
2
我也遇到了这个问题,我的解决方案是创建一个新HttpRequest
的删除方法,然后克隆这个请求,用你的数据重置它的主体。
let req = new HttpRequest('DELETE', 'url');
let newReq = req.clone({body: [10]});
this.http.request(newReq).subscribe((res) => {
console.log(res);
}, (err) => {
console.log(err);
});
是必需的clone()
,因为 body 仍然不能直接设置在 new HttpRequest()
.
于 2017-09-15T10:55:27.453 回答
1
import { HttpClient, HttpParams } from '@angular/common/http';
constructor(private http: HttpClient) { }
deleteItem(item: any): Observable<any> {
let params = new HttpParams();
params = params.append('itemId', item.itemId);
return this.http.delete<any>(`url`, { params });
}
于 2021-01-18T11:03:07.640 回答