25

我需要使用$resource发送带有我的 DELETE 请求的请求正文

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

https://github.com/angular/angular.js/blob/master/src/ngResource/resource.js

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'};

或类似的东西......我用谷歌搜索了这个,但也许我错过了一些明显的东西(不是第一次)。感谢您提前提供任何帮助。

4

3 回答 3

28

这行得通。

$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);
    });
};
于 2013-11-10T19:24:23.693 回答
2

您可以将(http://docs.angularjs.org/api/ng.%24http#Usage )组件注入您的控制器之一,并按如下方式使用它:$http

$http({method: 'DELETE', url: 'www.url.com', headers: {'X-MY-HEADER': 'MY_VALUE'}});

我希望这是你所期望的。

于 2013-03-01T13:53:11.250 回答
-2

您应该能够按照文档https://docs.angularjs.org/api/ngResource/service/ $resource中的说明对您的资源调用“删除”

于 2014-09-05T08:54:09.113 回答