2011-04-01 55 views
2

我正在使用GWT,并且我试图使用com.google.gwt.user.client.Cookies在客户端上设置一个cookie。如果我想使用默认域(对于devmode,这是127.0.0.1)设置cookie,它按预期工作。我使用Firebug + Firecookie来查看浏览器中的cookies。但是,如果我尝试使用不同的域名,我在Firebug中看不到任何cookie。具体做法是:GWT存储不同域名的Cookie

这工作:

这不起作用:

Cookies.setCookie("name", "xyz", null, "traviswebb.com", "/", false); 

编辑:此函数调用的文件是在这里:http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/com/google/gwt/user/client/Cookies.html#setCookie%28java.lang.String,%20java.lang.String,%20java.util.Date,%20java.lang.String,%20java.lang.String,%20boolean%29

回答

7

这不是与GWT相关,但是与Cookie相关:您无法为其他网域设置Cookie,而不是您的网页提供的网域。否则恶意人员可以更改cookie,gmail,hotmail,任何服务。

要完成答案:您可以为子域设置Cookie。也就是说,如果你在example.com上,你可以设置/获取一个cookie.example.com

+0

那么为什么GWT库会通过他们的API特别公开这个功能呢? – 2011-04-01 15:36:53

+4

您可以为子网域设置Cookie。所以你可能希望你的domain.com应用程序设置一个login.domain.com cookie。 – monkjack 2011-04-01 16:01:09

+0

monjack是对的,你可以为子域设置cookie – 2011-04-03 10:46:43