ngResource 将 POST 参数附加到 url
Posted
技术标签:
【中文标题】ngResource 将 POST 参数附加到 url【英文标题】:ngResource appends POST parameters to url 【发布时间】:2013-12-25 19:48:42 【问题描述】:我有一个看起来像这样的角度服务。在这里,我正在发出 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。我可以避免吗?
【问题讨论】:
为什么不用$http
发帖?
@MaximShoustin $resouce
是$http
的顶部抽象,用于简化 REST 并返回统一的查询(和操作)REST 接口。
如果您不想要 URL 中的参数,请不要将它们配置为 url 参数。 $resource 将按原样发送实例数据(因此您的数据将是treeId
,而不是tree_id
。
@KevinStone 那么我应该省略params
吗?如果是,那么我在哪里指定表单数据?
【参考方案1】:
我认为您对如何使用 $resource
感到矛盾。您应该像创建模型一样创建 $resource 实例,并在要发布的对象上设置属性。
您的Apples
$resource 定义如上:
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()
,您可以使用它来代替创建自定义 $create()
操作。
【讨论】:
以上是关于ngResource 将 POST 参数附加到 url的主要内容,如果未能解决你的问题,请参考以下文章
ngResource 在 $save() 之后从 POST 响应中检索唯一 ID
[AngularJS] AngularJS系列 中级篇之ngResource
JMeter没有将二进制文件的内容附加到HTTP请求中的POST数据
查询数据时,Prisma 将自定义字段附加到 info 参数
转asp.net(c#)使用HttpWebRequest附加携带请求参数以post方式模拟上传大文件(以图片为例)到Web服务器端