je suis nouveau avec Angular et je travaille sur un projet qui, pour certaines raisons, je dois définir des en-têtes pour l'autorisation côté serveur, j'utilise Angular 4 et le Module HttpClient importé de '@ angular/common/http'
Ceci est ma classe AuthService
import { Injectable } from '@angular/core';
import { User } from '../../models/user';
import { HttpClient, HttpHeaders, HttpRequest } from
'@angular/common/http';
import { Observable } from 'rxjs';
import { Globals } from '../../utils/global';
import { Converters } from '../../utils/converters';
@Injectable()
export class AuthService {
getUserByToken(token: string): any {
let headers = new HttpHeaders();
headers.append('Content-Type', 'application/json');
headers.append('authorization', 'Bearer ' + token);
console.log(headers);
return new Promise((resolve, reject) => {
this.http.get(this.global.urls['info'], { headers: headers }).subscribe((data) => {
if (data != null) {
this.converter.userJsonToObject(data).then((data: User) => {
this.setCurrentUser(data);
this.persistToken(data.token);
resolve(data);
});
} else {
reject('This user is not defined');
}
}, (err) => {
reject(err);
});
});
}
Lorsque j'exécute mon projet et que j'appelle la fonction getUserByToken (token), la console du serveur m'a dit qu'aucun jeton n'avait été envoyé. Le point de terminaison fonctionne parfaitement avec ARC, donc le problème est du côté client. quelqu'un peut-il m'aider à résoudre ce problème? :RÉ
Il est de type immutable Map
donc si vous attribuez une nouvelle valeur, cela réinitialisera l'objet donc vous devriez faire comme
let headers = new HttpHeaders().set('Content-Type', 'application/json')
.set('authorization', 'Bearer ' + token);
ou
let headers = new HttpHeaders().set('Content-Type', 'application/json');
headers = headers.set('authorization', 'Bearer ' + token);