我正在开发一个应用程序,其中有许多子域,例如api。*。com,它负责REST请求处理。我正在尝试使用以下方法为子域设置cookie:
public class PlayerTokenUtils {
final private static int DEFAULT_AGE = (int) TimeUnit.DAYS.toSeconds(7);
private PlayerTokenUtils() {
throw new IllegalAccessError();
}
public static PlayerToken updateResponse(String token, HttpServletResponse response) {
Cookie cookie = new Cookie("player", token);
cookie.setPath("/");
cookie.setHttpOnly(true);
cookie.setDomain(".mavarazy.com");
cookie.setMaxAge(DEFAULT_AGE);
response.addCookie(cookie);
return token;
}
}
我在Firebug中看到,一切正常,注册请求(http://api.mavarazy.com:3333/registration/base/signin)&回复包含:
Set-Cookie player=rHIHtISWzw; Domain=.mavarazy.com; Expires=Sun, 02-Nov-2014 07:44:54 GMT; Path=/; HttpOnly
但是使用api.mavarazy.com对服务器的进一步请求不包含从Set返回的播放器Cookie。
我正在使用的测试环境:
我修改了我的/ etc / hosts
127.0.0.1 mavarazy.com
127.0.0.1 api.mavarazy.com
我的REST服务器正在运行Tomcat。
浏览器的所有REST请求都通过Node.js代理。
我做错了什么?在这种情况下,播放器Cookie的正确格式是什么?
答案 0 :(得分:0)
我在Backbone应用程序中发现了jQuery配置的问题。
添加
$.ajaxSetup {
...
xhrFields: {
withCredentials: true
}
...
}
解决了这个问题。