如何将body有效负载传递给angular $ resource DELETE调用

时间:2014-05-12 13:04:14

标签: angularjs rest angularjs-resource

我有标准的角度$资源配置为

angular.module('client.resources')

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

我将此方法称为

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

其中subjectIdArray是对象数组:

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

但是,请求正文不包含该数组。我怀疑DELETE请求是问题,因为重命名方法调用例如PUT有所不同。

我可以以某种方式允许DELETE请求的主体吗?

2 个答案:

答案 0 :(得分:5)

看看this answer

忽略DELETE请求的正文。您必须使用POST来执行您想要的操作,或使用URL描述您要发送的数据。

更新DELETE请求自Angular 1.6.4起可以拥有正文;检查denisazevedo's答案以获取更多信息。

答案 1 :(得分:4)

Angular 1.6.4开始,添加了hasBody操作配置。

您现在可以拥有:

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

hasBody - {boolean} - 允许指定请求正文是否应该是   包括与否。如果未指定POST,PUT和PATCH请求   会有一个身体。

Reference