2014-05-07 5 views
7

Ho scritto un metodo personalizzato su una risorsa Angolare nella mia applicazione per l'attivazione di un utente. L'endpoint dell'API è /users/activate e un codice di attivazione deve essere inserito su questo endpoint. Questo è ciò che la mia risorsa appare come:L'URL personalizzato della risorsa angolare utilizza stringhe di query e parametri POST

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

e sto usando nel mio controller in questo modo:

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

Come si può vedere dal registro di rete su Chrome, il codice di attivazione è in corso inviato nella stringa di query e la richiesta del corpo:

enter image description here

Come posso cambiare la risorsa di passare solo il codice di attivazione nel corpo della richiesta e non in t chiede una stringa?

risposta

10

Basta togliere params dalla dichiarazione azione:

activate: {method:'PUT', url: 'http://api.site.dev/users/activate'} 
+0

potreste per favore fatemelo sapere la causa percorso per questo? – cracker