クッキーをクロスオリジンで共有する方法は?より具体的には、Set-Cookie
ヘッダーをヘッダーと組み合わせて使用する方法はAccess-Control-Allow-Origin
?
これが私の状況の説明です:
localhost:4000
でホストされているWebアプリで実行されているAPIのCookieを設定しようとしていますlocalhost:3000
。
ブラウザで正しい応答ヘッダーを受信しているようですが、残念ながら効果はありません。応答ヘッダーは次のとおりです。
HTTP / 1.1 200 OK Access-Control-Allow-Origin:http:// localhost:3000 変更:Origin、Accept-エンコーディング セットCookie:token = 0d522ba17e130d6d19eb9c25b7ac58387b798639f81ffe75bd449afbc3cc715d6b038e426adeac3316f0511dc7fae3f7; 最大年齢= 86400; ドメイン= localhost:4000; パス= /; Expires = 2017年9月19日火曜日21:11:36GMT; HttpOnly コンテンツタイプ:application / json; charset = utf-8 コンテンツの長さ:180 ETag:W / "b4-VNrmF4xNeHGeLrGehNZTQNwAaUQ" 日付:2017年9月18日月曜日21:11:36 GMT 接続:キープアライブ
さらに、Response Cookies
Chromeの開発者ツールの[ネットワーク]タブを使用してトラフィックを検査すると、下にCookieが表示されます。それでも、の下の[アプリケーション]タブにCookieが設定されているのがわかりませんStorage/Cookies
。CORSエラーは表示されないので、他に何かが足りないと思います。
助言がありますか?
更新I:
React-Reduxアプリのリクエストモジュールを使用/signin
して、サーバー上のエンドポイントにリクエストを発行しています。サーバーにはエクスプレスを使用しています。
Expressサーバー:
res.cookie( 'token'、 'xxx-xxx-xxx'、{maxAge:86400000、httpOnly:true、domain: 'localhost:3000'})
ブラウザでのリクエスト:
request.post({uri: '/ signin'、json:{userName: 'userOne'、password: '123456'}}、(err、response、body)=> { //何かをする })
アップデートII:
リクエストヘッダーとレスポンスヘッダーを今ではクレイジーなように設定し、リクエストとレスポンスの両方に存在することを確認しています。以下はスクリーンショットです。ヘッダに注意してくださいAccess-Control-Allow-Credentials
、Access-Control-Allow-Headers
、Access-Control-Allow-Methods
とAccess-Control-Allow-Origin
。Axiosのgithubで見つけた問題を見ると、必要なヘッダーがすべて設定されているという印象を受けます。それでも、まだ運がありません...