我有一个看起来像这样的角度服务。我在这里发一个POST请求。
.factory("Apples", function ($resource, HOST) {
return $resource(
HOST + "/apples",
{},
{
create: {
method: 'POST',
params: {
tree_id: '@treeId',
name: '@name',
color: '@color'
}
}
}
);
})
问题是上述服务发出POST请求并将params
数据作为表单数据发送,但还将params
数据作为查询字符串附加到url。我可以避免吗?
答案 0 :(得分:6)
我认为你在如何使用$resource
方面存在冲突。您应该创建$ resource实例,就像它们是模型一样,并在要POST的对象上设置属性。
使用上面定义的Apples
$资源:
var apple = new Apples();
apple.color = ...
apple.name = ...
apple.tree_id = ...
apple.$create()
或者您可以直接使用$ resource类:
Apples.create({
apple.color: ...
apple.name: ...
apple.tree_id: ...
});
最后,$ resource有内置$save()
使用POST,您可以使用POST而不是创建自定义$create()
操作。