角度资源自定义URL使用查询字符串和POST参数

Joh*_*ean 7 javascript api rest put angularjs

我在我的应用程序中为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'}
        });
    }]);
Run Code Online (Sandbox Code Playgroud)

我正在我的控制器中使用它,如下所示:

User.activate({code: $routeParams.code});
Run Code Online (Sandbox Code Playgroud)

正如您在Chrome上的网络日志中所看到的,激活码正在查询字符串和请求正文中发送:

在此输入图像描述

如何更改资源只是在请求正文中而不是在查询字符串中传递激活代码?

小智 10

只需params从动作声明中删除:

activate: {method:'PUT', url: 'http://api.site.dev/users/activate'}
Run Code Online (Sandbox Code Playgroud)