我在我的应用程序中为Angular资源编写了一个自定义方法来激活用户. API端点为/ users / activate,并且必须将激活码PUT到此端点.这就是我的资源:
app.factory('User',['$resource',function($resource){ return $resource('http://api.site.dev/users/:id',{id: '@id'},{ activate: {method:'PUT',params:{code: '@code'},url: 'http://api.site.dev/users/activate'} }); }]);
我正在我的控制器中使用它,如下所示:
User.activate({code: $routeParams.code});
正如您在Chrome上的网络日志中看到的那样,激活码正在查询字符串和请求正文中发送:
解决方法
只需从动作声明中删除params:
activate: {method:'PUT',url: 'http://api.site.dev/users/activate'}