私はangular2アプリを持っていて、データを取得するためにSpringでTomcatを使用しています。ページのリロードやリダイレクトは必要ありません。必要なのはデータだけなので、サーバーからのすべての応答に@ResponseBodyアノテーションが付いています。Spring @ResponseBodyはセッションを使用できません
私の問題は、この注釈のために私はユーザーのセッション変数を取得できないということです。ログインするとセッションが作成され、ユーザーデータはそこに保存されますが、次回の呼び出しでは取得できません。
@JsonIgnoreProperties(ignoreUnknown = true)
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String login(HttpServletRequest REQ, @RequestBody String BODY) throws Exception
{
...check if all ok...
REQ.getSession().setAttribute("user", user);
... return user data...
}
私はセッションを使用できるように、一緒に必要なデータを、クライアントに戻す自分のデータを送信することができ、他の方法があります。
編集: 問題はサーバ側ではなくクライアント側にあります。 Angularはデフォルトでクロスドメイン要求でCookie JSESSIONIDを送信しません。
「ユーザーのセッション変数を取得できません」とはどういう意味ですか?それはコンパイルされませんか?それはクラッシュしますか?無効なデータまたは空のデータが返されますか?何かエラーメッセージが表示されますか? – Codo
これはangular2とは関係がないので、そのタグを削除したいかもしれません。 –
@Koos Gadellaa私はちょうど書き込みたいと思った - これは春とおそらくJavaとは関係ありません:)私は推測のポイントに依存します。 –