web-dev-qa-db-fra.com

Comment ajouter un corps à la fonction de suppression de Angular HttpClient

Notre projet migre vers Angular4, et utilise @angular/common/http Httpclient comme outil réseau par défaut. Mais j’ai trouvé qu’il n’y avait pas body params dans la fonction delete. Comment puis-je ajouter le corps pour supprimer la fonction? Merci.

30
Hongyang Du

Vous pouvez également utiliser une méthode universelle request sur la classe HttpClient. Cette méthode a le corps dans les options. https://angular.io/api/common/http/HttpClient#members

par exemple 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);
                   });
    });

en utilisant httpOptions, vous pouvez définir un en-tête et un corps. veuillez vous référer à ceci https://angular.io/tutorial/toh-pt6#delete-a-hero

15
Nasreen Ustad

J'ai également ce problème et ma solution crée une nouvelle méthode HttpRequest of delete, puis clone cette demande, réinitialise son corps avec vos données.

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);
});

La clone() est requise, car le corps ne peut toujours pas être défini directement dans la new HttpRequest().

1
Yitim