Cookie不保存到具有相同域的另一个URL

时间:2017-08-15 04:58:59

标签: java spring spring-mvc cookies spring-boot

这是我项目的示例代码。 我在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

0 个答案:

没有答案