Javascript 发送带有删除请求的正文的干净方法是什么?

Javascript 发送带有删除请求的正文的干净方法是什么?,javascript,angularjs,angular-resource,Javascript,Angularjs,Angular Resource,我需要使用发送一个包含删除请求的请求正文 我能看到的唯一方法就是改变: 来自 var hasBody = action.method == 'POST' || action.method == 'PUT' || action.method == 'PATCH'; 至 var hasBody = action.method == 'POST' || action.method == 'PUT' || action.method == 'PATCH' || action.method == 'D

我需要使用发送一个包含删除请求的请求正文

我能看到的唯一方法就是改变:

来自

var hasBody = action.method == 'POST' || action.method == 'PUT' || action.method == 'PATCH';

var hasBody = action.method == 'POST' || action.method == 'PUT' || action.method == 'PATCH' || action.method == 'DELETE';
有没有更好的方法来克服这个问题?与更改内容类型标题类似,您可以执行以下操作:

$httpProvider.defaults.headers["delete"] = {'Content-Type': 'application/json;charset=utf-8'};
或者类似的东西。。。我在谷歌上搜索了一下,但也许我错过了一些明显的东西(不是第一次)。感谢您提前提供的帮助。

您可以将
$http
()组件注入其中一个控制器,并按如下方式使用它:

$http({method: 'DELETE', url: 'www.url.com', headers: {'X-MY-HEADER': 'MY_VALUE'}});
我希望这是你所期望的。

这很有效

$scope.delete = function(object) {
    $http({
        url: 'domain/resource',
        method: 'DELETE',
        data: {
            id: object.id
        },
        headers: {
            "Content-Type": "application/json;charset=utf-8"
        }
    }).then(function(res) {
        console.log(res.data);
    }, function(error) {
        console.log(error);
    });
};

正如我想指出的文档$resource

中所述,您应该能够调用资源上的“remove”。DELETE应该删除由url标识的资源。所以你不应该在正文中发送数据。我确定正文可以删除+1,我正要发布同样的问题@SubirKumarSao,我想发送一个请求正文,其中包含删除多个资源的DELETE(要删除的资源就是请求正文中的资源)。有没有一种更为RESTful的方法可以做到这一点?我认为上面的评论是指DELETE/post是不可用的,因为它应该在URL中指定一个特定的资源。但是,我想删除/post/:id,但我需要确保作为数据发送标识符令牌的用户拥有该帖子。我正试图使用Angular Resource执行此操作,但在问题中没有明确说明,sorryOk。我认为$resource并不是为这种处理而设计的,它显然是为了在数据绑定上下文中使用。对于特定的请求,我想$http必须直接使用。从我所读的内容来看,如果这是一个自定义头,那么添加“X-”前缀被认为是不好的做法。我仍然希望发送带有删除的内容,而不是自定义标题。不。这不是。与
$http.delete('domain/resource',{id:object.id})相同好的,我编辑了你的答案,你应该添加正确的标题。现在它起作用了:)