2016-09-29 10 views
0

Authorizationヘッダーを以下のように設定しようとすると、要求のためにヘッダーがサーバーに送信されません。フェッチでAuthorizationヘッダーを設定する正しい方法は何ですか?フェッチを使用しているときに認証ヘッダーが送信されない

let options = { 
    method: 'GET', 
    headers: new Headers({ 
    Authorization: 'Bearer ...' 
    }) 
}; 
fetch('/api/somedata', options).then(function(response) { console.log(response); }; 

編集ネットワーク]タブ上のChromeデベロッパーツールで

私は要求のためにこれを取得する:

GET /api/somedata HTTP/1.1 
Host: someserver.azurewebsites.net 
Connection: keep-alive 
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36 
Accept: */* 
Referer: http://localhost:3000/somedata 
Accept-Encoding: gzip, deflate, sdch 
Accept-Language: en-US,en;q=0.8 

注設定されているいかなるAuthorizationヘッダーがありません。

、サーバが応答します。

HTTP/1.1 401 Unauthorized 
Content-Length: 61 
Content-Type: application/json; charset=utf-8 
Server: Microsoft-IIS/8.0 
WWW-Authenticate: Bearer 
X-Powered-By: ASP.NET 
Access-Control-Allow-Origin: * 
Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE 
Date: Thu, 29 Sep 2016 03:16:15 GMT 
+0

私はあなたの問題を再現することはできません。あなたが投稿したコードと同じコードを使ってテストしましたが、 'Authorization'ヘッダーが実際にサーバーに送信されています... – Frxstrem

+0

' Authorization'ヘッダーは[禁止ヘッダー名](https://developer.mozilla .org/en-US/docs/Glossary/Forbidden_​​header_name)、それがうまくいかない理由はありません。あなたはAuthorizationヘッダーなしでリクエストが送信されますか? ChromeやFirefoxを使用している場合は、F12でデベロッパーコンソールを開き、[ネットワーク]タブでフェッチリクエストを見つけてリクエストヘッダーを表示できます。それがあれば、おそらくサーバー側に問題があります。 – Frxstrem

+0

はい、Authorizationヘッダーを設定していないと確信しています。 – user193427

答えて

0

私はあなたのサーバーには、以下のレスポンスヘッダを含める必要が信じている:

Access-Control-Allow-Headers: Authorization 
+0

これで問題は解決しましたか?私は同じ問題を抱えていますが、これを加えても私には役に立たなかった。私の質問はこちらhttp://stackoverflow.com/questions/40900977/custom-request-headers-not-being-sent-with-a-javascript-fetch-request – JasonDavis

関連する問題