2017-08-08 14 views
2

私の問題は:ブラウザはSet-Cookieヘッダーからクッキーを保存しません。
デスクトップにローカルに配置されたフロントエンド(Angular2)があります。ステージングサーバー上のバックエンド。そのため、相互作用はCORS上で行われます。

私はSet-Cookieヘッダーと要求して取得しています何:ブラウザはクッキーを保存しません

HTTP/1.1 200 OK 
Date: Tue, 08 Aug 2017 11:00:03 GMT 
Server: ..... 
Access-Control-Allow-Origin: http://localhost:4200 
Access-Control-Allow-Credentials: true 
Content-Type: application/json 
Content-Length: 39 
Set-Cookie: session=.........; Path=/ 
Keep-Alive: timeout=5, max=99 
Connection: Keep-Alive 

私は上記の答え取得していた後、私は、次のリクエストを送信しています:あなたが見ることができるように

GET /api/..... HTTP/1.1 
Host: ...{some url}... 
Connection: keep-alive 
Origin: http://localhost:4200 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36 
Content-Type: application/json 
Accept: application/json, text/plain, */* 
withCredentials: true 
Referer: http://localhost:4200/ 
Accept-Encoding: gzip, deflate 
Accept-Language: en-US,en;q=0.8,ru;q=0.6,uk;q=0.4 

をそこにクッキーはありません。また、外部アプリ(Chromeアドオン)、JSコンソール、Applicationセクションのウェブコンソールには表示されません。だから、クッキーは間違いなくブラウザによって保存されません。

私の質問は次のとおりです。問題はどこですか?私のヘッダーに何か間違っていますか?それとも何か他のもの、またはヘッダーのバックエンドの問題ですか?問題はどこにありますか?

複製の回答について - あなたが見ることができるように、私は他のトピックでここで見つけられた答えを試しましたが、私の問題は解決しませんでした。

答えて

3

誤って答えが見つかりました。同じ問題が出るあなたの人は、 正しい方法でヘッダーを定義していることを確認してください。
理由はwithCredentialsヘッダーであり、Angular内で定義しています。正しく設定するには、次のようにしてください:

let options = new RequestOptions(); 
options.withCredentials = true; 

この構文ですべてがうまくいくはずです。

0

はhttp.method ...

this.http.get(url, { withCredentials: true }); 
にまっすぐに置くことができます
関連する問題