16

REST API に対してユーザーを認証するために、Authorization ヘッダーを GET 要求に設定しようとしています。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 が含まれています

私のリクエストヘッダー

何か案が ?

4

2 に答える 2

26

Accept406ステータスコードのため、むしろヘッダーが必要だと思います...

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

于 2016-07-04T13:30:35.993 に答える