2015-07-09 20 views
5

Sto facendo una richiesta ajax in Javascript per ottenere un JWT dal mio WebAPI AuthenticationProvider. Questo è il mio js-funzione:Richiesta token con JQuery da Web API

function authenticateUser(credentials) { 
    var body = { 
     grant_type: 'password', 
     client_id: 'myClientId', 
     client_secret: 'myClientSecret', 
     username: credentials.name, 
     password: credentials.password 
    }; 

    $.ajax({ 
     url: 'http://localhost:9000/token', 
     type: 'POST', 
     dataType: 'json', 
     contentType: 'application/x-www-form-urlencoded; charset=UTF-8', 
     /* data: JSON.stringify(body), /* wrong */ 
     data: body, /* right */ 
     complete: function(result) { 
      //called when complete 
      alert(result); 
     }, 

     success: function(result) { 
      //called when successful 
      alert(result); 
     }, 

     error: function(result) { 
      //called when there is an error 
      alert(result); 
     }, 
    }); 
    session.isAuthenticated(true); 
    return true; 
} 

Anche se il contenuto viene inviato nel modo giusto nei miei occhi, il OAuthValidateClientAuthenticationContext ha solo valori nulli.

la mia forma di dati copiati dalla console:

{ "grant_type": "password", "client_id": "myClientId", "client_secret": "myClientSecret", "username": "Demo" , "password": "123"}

+0

la richiesta Ajax è simile a quella che ho usato. La differenza principale che noto è la definizione dei dati del carico utile. Devi fare questo? Non ho mai. –

+0

Questo è il punto. Grazie, David. –

+0

nessun problema. Sono contento che sia stato un semplice cambiamento perché sembrava che fosse sulla strada giusta :) –

risposta

2

Sembra che tu possa averlo già risolto ma, questo è ciò che ha fatto per me. Usando il suddetto e impostando il corpo su questo ha funzionato.

var body = { 
    grant_type: 'password', 
    username: credentials.name, 
    password: credentials.password 
}; 
Problemi correlati