如何在$ http.delete中发送和数组

时间:2016-10-12 10:11:34

标签: angularjs http meanjs

我想删除使用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一样工作,对吧?顺便说一下,它显示了日志"获取删除"但没有这样做。

2 个答案:

答案 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] }