Angularjs 如何在$http.delete中发送和数组
我想删除使用http post创建的标记。这是我尝试过的代码Angularjs 如何在$http.delete中发送和数组,angularjs,http,meanjs,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
$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]的数组。所以这里有什么我看不到或不明白的。我的意思是,如果帖子有效,它应该和删除一样有效,对吗?顺便说一下,它显示日志“被删除”,但没有这样做 看看这个,如果你在DELETE的主体中发送了一些东西,就会被忽略
您应该按如下方式发送:
current/path?id=1&id=2&id=3&id=4
{ id : [1, 2, 3, 4] }
这就像GET方法一样,你不允许在体内发送任何东西
更新
如果使用示例中的URL参数发出请求,您将收到如下对象:
current/path?id=1&id=2&id=3&id=4
{ id : [1, 2, 3, 4] }
我找到解决办法了!在我的例子中,HTTP 1.1能够发送正文,但是头不能发送,所以请使用JSON的内容。因此,通过将
标题:{'Content-Type':'application/json;charset=utf-8'}
添加到$http.delete
的data:字段中,它工作了,数组得到了发送
我希望这对某人有帮助
谢谢你的回答 但是这篇文章说HTTP 1.1允许这样做?好吧,但让我们假设这就是问题所在,我如何以我尝试过的路径发送数组:“api/tags/”+[myarray]我不这么认为,如果你查看一下,你会发现URI中只提到了参数。例如,如果你想接收一个ID数组,您可以在URL中发送多个字符串,如示例中所示,我用最后一个对象的示例进行了更新