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服务器端