我需要使用$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'};
或类似的东西......我用谷歌搜索了这个,但也许我错过了一些明显的东西(不是第一次)。感谢您提前提供任何帮助。
答案 0 :(得分:27)
这很有效。
$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);
});
};
答案 1 :(得分:2)
您可以将$http
(http://docs.angularjs.org/api/ng.%24http#Usage)组件注入到其中一个控制器中,并按如下方式使用它:
$http({method: 'DELETE', url: 'www.url.com', headers: {'X-MY-HEADER': 'MY_VALUE'}});
我希望这是你所期望的。
答案 2 :(得分:-2)
您应该可以致电'删除'在您的资源上,如文档https://docs.angularjs.org/api/ngResource/service/ $ resource
中所述