这是我项目的示例代码。
我在ajax
文件上创建了一个html
函数,该文件将转到 api_base_url / login?id = P1003
$("#trigger").click(function(){
$.ajax({
url : api_base_url + "/login",
type : "GET",
data : {id: "P1003"},
success : function (response){
if(response != null) {
window.open(api_base_url + response);
}
}
});
})
在我的控制器中,“/ login”有一个GetMapping
函数,它将在域上创建cookie,并在下一步重定向的位置返回一个字符串URL。
@RequestMapping("/login")
public String login(HttpServletResponse response, @RequestParam(value = "id", defaultValue = "*") String id){
Cookie SESSION_ID = new Cookie("SESSION_ID", id);
SESSION_ID.setPath("/");
response.addCookie(SESSION_ID);
return "/home";
}
现在我还有一个“/ home”控制器来获取我在浏览器中设置的cookie。
@RequestMapping("/home")
public ModelAndView home(HttpServletRequest request, HttpServletResponse response)
throws IOException, ParseException {
ModelAndView mav = new ModelAndView();
mav.setViewName("home");
Cookie[] cookies = request.getCookies();
JSONObject ses = new JSONObject();
System.out.println("Cookies " + ses);
return mav;
}
“/ home”控制器似乎无法找到我在“/ login”控制器中设置的cookie,尽管它们具有相同的域。 每当我去 api_base_url / home 时,cookie都是空的 我必须首先访问 api_base_url / login?id = P1003 ,然后 api_base_url / home 才能拥有我需要的Cookie。
请帮助我被困T_x