Sending body in HttpClient delete method (Angular 5)
I'm migrating Http to HttpClient in an Angular 5 application and everything went fine until I got to this method of one of the services:
deleteMultipleObjects(userId: number, officeId : number, objectsData : any) {
const url = `${APP_URL}/delete-objects/${userId}/${officeId}`;
let headers = new Headers({ 'Content-Type': 'application/json' });
this.appOptionsService.log("Deleting multiple objects.....", url, objectsData);
return this.http
.delete(url, { headers : headers, body : objectsData } )
.map(this.extractData)
.catch(this.handleError);
}
As you can see, I pass an object objectsData
in the body of the delete call that basically has this structure:
{
objectIds: [id1, id2, id3, ...]
}
I see that the delete
method in the HttpClient
doesn't allow to include a body, so how could I send the array of object ids to delete with the call? I have a lot of delete calls that are the same as this one, so I'll have to change a lot of things in the code to adapt it...
Thanks!
angular httpclient
add a comment |
I'm migrating Http to HttpClient in an Angular 5 application and everything went fine until I got to this method of one of the services:
deleteMultipleObjects(userId: number, officeId : number, objectsData : any) {
const url = `${APP_URL}/delete-objects/${userId}/${officeId}`;
let headers = new Headers({ 'Content-Type': 'application/json' });
this.appOptionsService.log("Deleting multiple objects.....", url, objectsData);
return this.http
.delete(url, { headers : headers, body : objectsData } )
.map(this.extractData)
.catch(this.handleError);
}
As you can see, I pass an object objectsData
in the body of the delete call that basically has this structure:
{
objectIds: [id1, id2, id3, ...]
}
I see that the delete
method in the HttpClient
doesn't allow to include a body, so how could I send the array of object ids to delete with the call? I have a lot of delete calls that are the same as this one, so I'll have to change a lot of things in the code to adapt it...
Thanks!
angular httpclient
The body for delete method is not preferable so many platforms have started to ignore the body for delete request.
– Sumeet Kale
Feb 8 '18 at 12:32
So, if I want to delete several objects at once, do I have to use a PUT request instead of a DELETE?
– Fel
Feb 8 '18 at 12:47
Yes. That's the only workaround to achieve multiple delete.
– Sumeet Kale
Feb 8 '18 at 12:47
Thanks, I'll change all the calls then... cheers.
– Fel
Feb 8 '18 at 13:08
add a comment |
I'm migrating Http to HttpClient in an Angular 5 application and everything went fine until I got to this method of one of the services:
deleteMultipleObjects(userId: number, officeId : number, objectsData : any) {
const url = `${APP_URL}/delete-objects/${userId}/${officeId}`;
let headers = new Headers({ 'Content-Type': 'application/json' });
this.appOptionsService.log("Deleting multiple objects.....", url, objectsData);
return this.http
.delete(url, { headers : headers, body : objectsData } )
.map(this.extractData)
.catch(this.handleError);
}
As you can see, I pass an object objectsData
in the body of the delete call that basically has this structure:
{
objectIds: [id1, id2, id3, ...]
}
I see that the delete
method in the HttpClient
doesn't allow to include a body, so how could I send the array of object ids to delete with the call? I have a lot of delete calls that are the same as this one, so I'll have to change a lot of things in the code to adapt it...
Thanks!
angular httpclient
I'm migrating Http to HttpClient in an Angular 5 application and everything went fine until I got to this method of one of the services:
deleteMultipleObjects(userId: number, officeId : number, objectsData : any) {
const url = `${APP_URL}/delete-objects/${userId}/${officeId}`;
let headers = new Headers({ 'Content-Type': 'application/json' });
this.appOptionsService.log("Deleting multiple objects.....", url, objectsData);
return this.http
.delete(url, { headers : headers, body : objectsData } )
.map(this.extractData)
.catch(this.handleError);
}
As you can see, I pass an object objectsData
in the body of the delete call that basically has this structure:
{
objectIds: [id1, id2, id3, ...]
}
I see that the delete
method in the HttpClient
doesn't allow to include a body, so how could I send the array of object ids to delete with the call? I have a lot of delete calls that are the same as this one, so I'll have to change a lot of things in the code to adapt it...
Thanks!
angular httpclient
angular httpclient
asked Feb 8 '18 at 12:29
FelFel
595721
595721
The body for delete method is not preferable so many platforms have started to ignore the body for delete request.
– Sumeet Kale
Feb 8 '18 at 12:32
So, if I want to delete several objects at once, do I have to use a PUT request instead of a DELETE?
– Fel
Feb 8 '18 at 12:47
Yes. That's the only workaround to achieve multiple delete.
– Sumeet Kale
Feb 8 '18 at 12:47
Thanks, I'll change all the calls then... cheers.
– Fel
Feb 8 '18 at 13:08
add a comment |
The body for delete method is not preferable so many platforms have started to ignore the body for delete request.
– Sumeet Kale
Feb 8 '18 at 12:32
So, if I want to delete several objects at once, do I have to use a PUT request instead of a DELETE?
– Fel
Feb 8 '18 at 12:47
Yes. That's the only workaround to achieve multiple delete.
– Sumeet Kale
Feb 8 '18 at 12:47
Thanks, I'll change all the calls then... cheers.
– Fel
Feb 8 '18 at 13:08
The body for delete method is not preferable so many platforms have started to ignore the body for delete request.
– Sumeet Kale
Feb 8 '18 at 12:32
The body for delete method is not preferable so many platforms have started to ignore the body for delete request.
– Sumeet Kale
Feb 8 '18 at 12:32
So, if I want to delete several objects at once, do I have to use a PUT request instead of a DELETE?
– Fel
Feb 8 '18 at 12:47
So, if I want to delete several objects at once, do I have to use a PUT request instead of a DELETE?
– Fel
Feb 8 '18 at 12:47
Yes. That's the only workaround to achieve multiple delete.
– Sumeet Kale
Feb 8 '18 at 12:47
Yes. That's the only workaround to achieve multiple delete.
– Sumeet Kale
Feb 8 '18 at 12:47
Thanks, I'll change all the calls then... cheers.
– Fel
Feb 8 '18 at 13:08
Thanks, I'll change all the calls then... cheers.
– Fel
Feb 8 '18 at 13:08
add a comment |
1 Answer
1
active
oldest
votes
You can not send body in DELETE
http request in Angular.
HTTP specification on MDN says that this possible. documentation page.
If you need this functionality, you should use PUT
as workaround. Another method to allow multiple e.g. id's on your delete API endpoint. For example:
https://server.com/api/delete?ids=1,2,3,4,5
That requires some changes on your api.
I changed the DELETE requests for PUT equivalents, so I can use the body in the call to send the objects to be deleted.
– Fel
Jun 3 '18 at 6:30
the HTTP Delete MAY have a body. It's a missing angular feature. developer.mozilla.org/en-US/docs/Web/HTTP/Methods/DELETE
– GlueLabs
Nov 20 '18 at 12:24
1
@GlueLabs at the moment, where I answered that question the MDN documentation page doesn't have this information.
– Gregor Doroschenko
Nov 20 '18 at 15:21
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f48685569%2fsending-body-in-httpclient-delete-method-angular-5%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can not send body in DELETE
http request in Angular.
HTTP specification on MDN says that this possible. documentation page.
If you need this functionality, you should use PUT
as workaround. Another method to allow multiple e.g. id's on your delete API endpoint. For example:
https://server.com/api/delete?ids=1,2,3,4,5
That requires some changes on your api.
I changed the DELETE requests for PUT equivalents, so I can use the body in the call to send the objects to be deleted.
– Fel
Jun 3 '18 at 6:30
the HTTP Delete MAY have a body. It's a missing angular feature. developer.mozilla.org/en-US/docs/Web/HTTP/Methods/DELETE
– GlueLabs
Nov 20 '18 at 12:24
1
@GlueLabs at the moment, where I answered that question the MDN documentation page doesn't have this information.
– Gregor Doroschenko
Nov 20 '18 at 15:21
add a comment |
You can not send body in DELETE
http request in Angular.
HTTP specification on MDN says that this possible. documentation page.
If you need this functionality, you should use PUT
as workaround. Another method to allow multiple e.g. id's on your delete API endpoint. For example:
https://server.com/api/delete?ids=1,2,3,4,5
That requires some changes on your api.
I changed the DELETE requests for PUT equivalents, so I can use the body in the call to send the objects to be deleted.
– Fel
Jun 3 '18 at 6:30
the HTTP Delete MAY have a body. It's a missing angular feature. developer.mozilla.org/en-US/docs/Web/HTTP/Methods/DELETE
– GlueLabs
Nov 20 '18 at 12:24
1
@GlueLabs at the moment, where I answered that question the MDN documentation page doesn't have this information.
– Gregor Doroschenko
Nov 20 '18 at 15:21
add a comment |
You can not send body in DELETE
http request in Angular.
HTTP specification on MDN says that this possible. documentation page.
If you need this functionality, you should use PUT
as workaround. Another method to allow multiple e.g. id's on your delete API endpoint. For example:
https://server.com/api/delete?ids=1,2,3,4,5
That requires some changes on your api.
You can not send body in DELETE
http request in Angular.
HTTP specification on MDN says that this possible. documentation page.
If you need this functionality, you should use PUT
as workaround. Another method to allow multiple e.g. id's on your delete API endpoint. For example:
https://server.com/api/delete?ids=1,2,3,4,5
That requires some changes on your api.
edited Nov 20 '18 at 15:25
answered Feb 8 '18 at 15:56
Gregor DoroschenkoGregor Doroschenko
3,79631527
3,79631527
I changed the DELETE requests for PUT equivalents, so I can use the body in the call to send the objects to be deleted.
– Fel
Jun 3 '18 at 6:30
the HTTP Delete MAY have a body. It's a missing angular feature. developer.mozilla.org/en-US/docs/Web/HTTP/Methods/DELETE
– GlueLabs
Nov 20 '18 at 12:24
1
@GlueLabs at the moment, where I answered that question the MDN documentation page doesn't have this information.
– Gregor Doroschenko
Nov 20 '18 at 15:21
add a comment |
I changed the DELETE requests for PUT equivalents, so I can use the body in the call to send the objects to be deleted.
– Fel
Jun 3 '18 at 6:30
the HTTP Delete MAY have a body. It's a missing angular feature. developer.mozilla.org/en-US/docs/Web/HTTP/Methods/DELETE
– GlueLabs
Nov 20 '18 at 12:24
1
@GlueLabs at the moment, where I answered that question the MDN documentation page doesn't have this information.
– Gregor Doroschenko
Nov 20 '18 at 15:21
I changed the DELETE requests for PUT equivalents, so I can use the body in the call to send the objects to be deleted.
– Fel
Jun 3 '18 at 6:30
I changed the DELETE requests for PUT equivalents, so I can use the body in the call to send the objects to be deleted.
– Fel
Jun 3 '18 at 6:30
the HTTP Delete MAY have a body. It's a missing angular feature. developer.mozilla.org/en-US/docs/Web/HTTP/Methods/DELETE
– GlueLabs
Nov 20 '18 at 12:24
the HTTP Delete MAY have a body. It's a missing angular feature. developer.mozilla.org/en-US/docs/Web/HTTP/Methods/DELETE
– GlueLabs
Nov 20 '18 at 12:24
1
1
@GlueLabs at the moment, where I answered that question the MDN documentation page doesn't have this information.
– Gregor Doroschenko
Nov 20 '18 at 15:21
@GlueLabs at the moment, where I answered that question the MDN documentation page doesn't have this information.
– Gregor Doroschenko
Nov 20 '18 at 15:21
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f48685569%2fsending-body-in-httpclient-delete-method-angular-5%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
The body for delete method is not preferable so many platforms have started to ignore the body for delete request.
– Sumeet Kale
Feb 8 '18 at 12:32
So, if I want to delete several objects at once, do I have to use a PUT request instead of a DELETE?
– Fel
Feb 8 '18 at 12:47
Yes. That's the only workaround to achieve multiple delete.
– Sumeet Kale
Feb 8 '18 at 12:47
Thanks, I'll change all the calls then... cheers.
– Fel
Feb 8 '18 at 13:08