我有angular2應用程序並使用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我只是想寫 - 這與Spring和可能甚至Java無關:)取決於我的觀點。 –