web-dev-qa-db-ja.com

リクエストの取得時にヘッダーを設定angular 2

ユーザーをREST APIに認証するために、GETリクエストにAuthorizationヘッダーを設定しようとしています。私はAngular 2 RC1。(私は初心者です)を使用しています。

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

バックエンドでCORSを許可します。

header("Access-Control-Allow-Origin: *");
header("Access-Control-Request-Headers: Content-Type, Authorization");

私のコンソール:

オプションapi/userProfile /

XMLHttpRequestは/ userProfile /をロードできません。プリフライトの応答に無効なHTTPステータスコード406が含まれています

私のリクエストヘッダー

何か案が ?

16

406ステータスコードのためではなく、Acceptヘッダーが必要だと思います...

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));

これにより、応答で期待するコンテンツタイプをサーバーに伝えることができます...

Content-Typeヘッダーは、リクエストで送信したコンテンツのタイプを指定するためのものです。あなたの場合、コンテンツはありません...

26
autorization =  { Authorization: 'Token adfasdfadf651f65asd1f65asdf' }

this.http.get(url, { headers: autorization})
2
Gregory