我有一个看起来像这样的角度服务.我在这里发一个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.我可以避免吗?
解决方法
我认为你在如何使用$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具有使用POST的内置$save(),您可以使用POST而不是创建自定义的$create()操作.