Body Of Http.DELETE Request In Angular2


Answer :

The http.delete(url, options) does accept a body. You just need to put it within the options object.

http.delete('/api/something', new RequestOptions({    headers: headers,    body: anyObject })) 

Reference options interface: https://angular.io/api/http/RequestOptions

UPDATE:

The above snippet only works for Angular 2.x, 4.x and 5.x.

For versions 6.x onwards, Angular offers 15 different overloads. Check all overloads here: https://angular.io/api/common/http/HttpClient#delete

Usage sample:

const options = {   headers: new HttpHeaders({     'Content-Type': 'application/json',   }),   body: {     id: 1,     name: 'test',   }, };  this.httpClient   .delete('http://localhost:8080/something', options)   .subscribe((s) => {     console.log(s);   }); 

You are actually able to fool Angular2 HTTP into sending a body with a DELETE by using the request method. This is how:

let body = {     target: targetId,     subset: "fruits",     reason: "rotten" };  let options = new RequestOptionsArgs({      body: body,     method: RequestMethod.Delete   });  this.http.request('http://testAPI:3000/stuff', options)     .subscribe((ok)=>{console.log(ok)}); 

Note, you will have to set the request method in the RequestOptionsArgs and not in http.request's alternative first parameter Request. That for some reason yields the same result as using http.delete

I hope this helps and that I am not to late. I think the angular guys are wrong here to not allow a body to be passed with delete, even though it is discouraged.


In Angular 5, I had to use the request method instead of delete to send a body. The documentation for the delete method does not include body, but it is included in the request method.

import { HttpClient } from '@angular/common/http'; import { HttpHeaders } from '@angular/common/http';  this.http.request('DELETE', url, {     headers: new HttpHeaders({         'Content-Type': 'application/json',     }),     body: { foo: bar } }); 

Comments

Popular posts from this blog

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Can Feynman Diagrams Be Used To Represent Any Perturbation Theory?