2016-07-04 10 views
14

ユーザーを残りのAPIに認証するGET要求にAuthorizationヘッダーを設定しようとしています。私はAngular 2 RC1を使用しています。 (私は総初心者です)。取得要求のヘッダーを角2に設定します。

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

マイコンソール:/ USERPROFILE/

のXMLHttpRequest

OPTIONS APIは/ USERPROFILE /をロードすることはできません。プリフライトの応答は 無効なHTTPステータスコード406

My request headers

任意のアイデアを持っていますか?これは、あなたがコンテンツタイプを使用すると、応答期待サーバーを伝えることができます

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

+0

は完全な例をここで私が見るhttp://stackoverflow.com/a/34758630/5043867 –

答えて

23

私はあなたではなくので、406のステータスコードのAcceptヘッダが必要だと思う... ...

Content-Typeヘッダーではなく、リクエストで送信したコンテンツの種類を指定することです。あなたのケースでは、何のコンテンツがありません...

+0

を参照してください、第二のヘッダが今問題となっているようです。これがなければ正常に動作しますが、Authorizationヘッダーでは動作しません。406ステータスコード。なにか提案を ? –

+0

おそらく、リクエストオプション内で 'true'に' withCredentials'プロパティを使用します。それはRC2から利用可能です... –

2
autorization = { Authorization: 'Token adfasdfadf651f65asd1f65asdf' } 

this.http.get(url, { headers: autorization}) 
関連する問題