How to pass body payload to angular $resource DELETE call

angularjs, angularjs-resource, rest

Solution

Starting on Angular 1.6.4, the `hasBody` action configuration was added.

You can now have:

deleteSomething: {
    method: 'DELETE',
    hasBody: true
}

`hasBody` - `{boolean}` - allows to specify if a request body should be included or not. If not specified only POST, PUT and PATCH requests will have a body.

Reference

Problem

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?

Original source

Related problems