私は似たような質問を閲覧しましたが、私が試した解決策はありません。AngularJs:サーバーから送信されたクッキーを読み取ることができません
レスポンスにクッキーを追加してAngularjsフロントエンドアプリケーションに返すJersey2.0 RESTサービスがあります。私はすでに設定が正しく行われています(Access-Control-Allow-Credentials = true、Access-Control-Allow-Originなどのワイルドカードはありません)。
私はそうのような応答にヘッダーを「SET-COOKIE」を追加することによってそれを行う:
MultivaluedMap<String, Object> headers = responseContext.getHeaders();
headers.add("SET-COOKIE", new NewCookie(cookieName, cookieValue);
これは動作しますが、私はクッキーがその特定のRESTサービス呼び出しの応答にして返されて見ることができますその特定のRESTエンドポイント。つまり、Chromeデベロッパーコンソールの[ネットワーク]タブで、Cookieを返すと思われるリクエストをクリックすると、[Cookie]タブと[Headers]タブの両方で返されたCookieが表示されますレスポンス。実際、エンドポイントに別のリクエストを行うと、同じクッキーがリクエストで送信され、Jerseyサーバーで取得できます。
素晴らしい。問題は、Cookieが[リソース]タブに表示されていないことです。 「リソース」タブをクリックし、左側にある「Cookies」ドロップダウンを選択し、localhostを選択すると、応答で送信しようとしているクッキーはそこにありません。私はこれが、ngCookiesを使用して$cookies.get('cookieId');
経由で私のAngularJsアプリケーションでCookieを取得しようとすると、私は未定義になると仮定しています。
また、誰かが回答/コメントで言及している場合にのみ、私はこの問題がHttpOnlyではないと確信しています。私のJSESSIONIDクッキーが返され、HttpOnlyを示すHttpフィールドがチェックされた 'Resources'タブでそれを見ることができます。
私は会社の環境にいるので、クッキーを追加することはできませんが、$Cookies.put('cookieId', 'cookieValue');
でAngularフロントエンドでこれを行うことができ、 'Resources'タブに表示されます良い。
なぜ私のクッキーがサーバーから追加されていないのですか?