How to pass body payload to angular $resource DELETE call

Askar Ibragimov picture Askar Ibragimov · May 12, 2014 · Viewed 7.4k times · Source

I have standard angular $resource configured as such

angular.module('client.resources')

.factory('ProjectSubjectResource',['$resource',
    function ($resource) {
            release: {
                method: 'DELETE',
                isArray: false
            }
        });
    }]);

and I am calling this method as

ProjectSubjectResource.release({projectId: projectId, subjectId: 0},{ subjectIds: subjectIdArray})

where subjectIdArray is array of objects:

[{subject1: 213123}, {subject2: 3131}]

However, body of request does not contain that array. I suspect that DELETE request is the problem, as renaming method call to e.g. PUT makes difference.

Can I allow body of DELETE request somehow?

Answer

link picture link · May 12, 2014

Take a look at this answer.

The body of a request for a DELETE is ignored. You will have to use POST to do what you want, or describe the data you are sending with the URL.

UPDATE: DELETE requests can have a body since Angular 1.6.4; check denisazevedo's answer for additional info.