サーバーからトークンを取得して動作しているポストメソッドがあります
authenticate() {
let url = this.server + 'authenticate';
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
let body = JSON.stringify({
'password': 'admin',
'rememberMe': true,
'username': 'admin'
});
return this._http.post(url, body, options)
.map((res: Response) => res.json())
.subscribe(result => this.token = result.id_token);
}
this.server
サーバーの URL を含む文字列です。angular Httpのthis._http
単なるインスタンスです
private _http: Http;
constructor(http: Http) {
this._http = http;
}
そしてthis.token
単なる空の文字列ですprivate token: string;
これですべて問題なく動作し、サーバーから適切なトークンを取得しています。私の問題は、get メソッドでこのトークンを使用しようとすると機能せず、401 (未承認) エラーが発生することです。
私のバグのある get メソッドは次のとおりです。
getData(src) {
let url = this.server + src;
let headers = new Headers({'Authorization': 'Bearer ' + this.token});
return this._http.get(url, headers)
.map((res: Response) => res.json())
.subscribe(res => console.log('res'));
}