我想删除使用http post创建的标记。这是我试过的代码。
$http({
method: 'DELETE',
url: '/api/tags',
data: [vm.tags.name]
}).success(function(data) {
console.log('Gets DELETED');
vm.tags.name = data;
}).error(function(data) {
console.log('Does not get DELETED');
});
然而,这没有用,它只发送一个带[null]的数组。那么我在这里看不到或不了解的东西。我的意思是,如果POST工作,它应该与DELETE一样工作,对吧?顺便说一下,它显示了日志"获取删除"但没有这样做。
答案 0 :(得分:4)
我得到了解决方案!在我的情况下,HTTP 1.1能够发送正文,但标题不能,所以使用JSON的内容。因此,通过将headers: {'Content-Type': 'application/json;charset=utf-8'}
添加到它工作的$http.delete
的data:字段并且数组已发送。
我希望这有助于某人。
感谢您的回答!
答案 1 :(得分:1)
看看这个answer,如果你在DELETE的主体中发送的东西被忽略了。
你应该发送这样的路径:
current/path?id=1&id=2&id=3&id=4
就像GET方法一样,你不能在体内发送任何东西。
<强>更新强>
如果您使用示例中的URL参数发出请求,您将收到如下对象:
{ id : [1, 2, 3, 4] }