web-dev-qa-db-ja.com

Angular HttpClient削除関数に本文を追加する方法

プロジェクトはAngular4に移行しており、@angular/common/http Httpclientをデフォルトのネットワークツールとして使用しています。しかし、削除関数にはbodyパラメーターがありません。関数を削除するために本文を追加するにはどうすればよいですか?ありがとう。

30
Hongyang Du

代わりに、HttpClientクラスでユニバーサルrequestメソッドを使用できます。このメソッドのオプションには本体があります。 https://angular.io/api/common/http/HttpClient#members

e.g this.http.request('delete', 'url', { body: ... })

56
Andrii Ivanyk
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を使用すると、ヘッダーと本文を設定できます。これを参照してください https://angular.io/tutorial/toh-pt6#delete-a-hero

15
Nasreen Ustad

私もこの問題を抱えており、私の解決策は新しい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()にはボディを直接設定できないため、new HttpRequest()が必要です。

1
Yitim