我正在运行springboot,并且尝试设置cookie并重定向页面
origin: http://abc.example.com (generate a cookie)
destination: http://xyz.example.com (set the cookie for login)
@RequestMapping(value = "/getUrl",
method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody Object getRedirect(HttpServletRequest request,
HttpServletResponse response) {
String auth = generateKey();
addCookie("auth", auth, response, -1);
ResponseCode resp = new ResponseCode();
resp.setUrl("http://xyz.example.com");
return CommonUtil.toJson(resp);
}
public void addCookie(String name,
String value,
HttpServletResponse response, int exp) {
Cookie cookie = new Cookie(name, value);
cookie.setMaxAge(exp);
cookie.setPath("/");
response.addCookie(cookie);
}
和HTML 收到请求后,我将使用
进行重定向window.location.href=url;
但是在xyz.example.com
中,我看不到正在设置cookie。
答案 0 :(得分:0)
如果您未指定域,则该域将仅应用于设置了该域的特定子域。
域指定允许主机接收cookie。如果未指定,则默认为当前文档位置的主机,不包括子域。如果指定了域,则始终包含子域。
例如,如果设置了Domain = mozilla.org,则cookie被包含在子域中,例如developer.mozilla.org。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies
因此,您可能需要指定一个“ example.com”域,以使其在两个子域中均可读。