J'essaie de définir un en-tête d'autorisation sur une demande GET pour authentifier les utilisateurs auprès d'une API de repos. J'utilise Angular 2 RC1. (Je suis un débutant total).
getTest(){
let authToken = localStorage.getItem('auth_token');
let headers = new Headers({ 'Content-Type': 'application/json' });
headers.append('Authorization', `Bearer ${authToken}`);
let options = new RequestOptions({ headers: headers });
return this._http
.get(this._url,options)
.map(res => console.log(res));
}
J'autorise CORS dans mon backend.
header("Access-Control-Allow-Origin: *");
header("Access-Control-Request-Headers: Content-Type, Authorization");
Ma console:
OPTIONS api/userProfile /
XMLHttpRequest ne peut pas charger/userProfile /. La réponse pour le contrôle en amont a un code d'état HTTP non valide 406
Une idée ?
Je pense que vous avez plutôt besoin de l'en-tête Accept
à cause du code d'état 406 ...
let authToken = localStorage.getItem('auth_token');
let headers = new Headers({ 'Accept': 'application/json' });
headers.append('Authorization', `Bearer ${authToken}`);
let options = new RequestOptions({ headers: headers });
return this._http
.get(this._url,options)
.map(res => console.log(res));
Cela vous permet de dire au serveur quel type de contenu vous attendez dans la réponse ...
Le Content-Type
l'en-tête est plutôt pour spécifier le type du contenu que vous avez envoyé dans la demande. Dans votre cas, il n'y a pas de contenu ...
autorization = { Authorization: 'Token adfasdfadf651f65asd1f65asdf' }
this.http.get(url, { headers: autorization})