angularjs – 如何不发送带有请求体的url模板参数?

前端之家收集整理的这篇文章主要介绍了angularjs – 如何不发送带有请求体的url模板参数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个这样设置的资源:
resource = $resource(
    "http://foo.com/service/:type/:id",{},{save: {method:'PUT',params: {type:'@type',id: '@id'}}}
);
resource.save({type:'user',id:14,name:'Bob Dole'});

有什么办法可以防止类型和身份被提交作为请求正文的一部分,只是在PUT有效负载中发送名称?我不控制我提交的API,似乎不喜欢我发送的额外的参数。

谢谢!

更新 – 10/25/13 – 13:38

resource的文档说:

If the parameter value is prefixed with @ then the value of that parameter is extracted from the data object (useful for non-GET operations).

这意味着这应该从数据中删除参数:

resource.save({type:'@user',id:'@14',name:'Bob Dole'});

但它似乎不起作用还在亏损

使用第一个参数为您的网址模板参数,并将您的帖子数据放在第二个参数,如下所示:
resource.save({id:14,type:'user'},{name:'Bob Dole'});

这是Angular docs显示功能签名的行:

非GET“类”操作:Resource.action([parameters],postData,[success],[error])

这是plunker的一个例子

您获得的请求在主体中没有url参数:

Request URL:http://run.plnkr.co/JAOqZqW6RSywatUM/badUrl/user/14
Request Method:PUT
Request Payloadview source
{name:Bob Dole}
原文链接:https://www.f2er.com/angularjs/144544.html

猜你在找的Angularjs相关文章