7

I've written a custom method on an Angular resource in my application for activating a user. The API endpoint is /users/activate and an activation code must be PUTed to this endpoint. This is what my resource looks like:

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'}
        });
    }]);

and I'm using it in my controller like so:

User.activate({code: $routeParams.code});

As you can see from the network log on Chrome, the activation code is being sent in the query string and request body:

enter image description here

How can I change the resource to just pass the activation code in the request body and not in the query string?

1 Answer 1

10

Just remove params from the action declaration:

activate: {method:'PUT', url: 'http://api.site.dev/users/activate'}
Sign up to request clarification or add additional context in comments.

1 Comment

could you please let me know the route cause for that?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.