删除Cookie问题

Cor*_*ulz 3 cookies gwt token

当用户登录www.example.com时,我有一个cookie保存令牌,然后根据他们使用的设备将它们重定向到example.com/desktop或example.com/mobile.当他们退出桌面应用程序时,我将cookie替换为null,然后在GWT中调用remove cookie并将其重定向到www.example.com,但cookie仍然存在.我在这里做错了吗?我之前没有使用过cookie,所以我对此有点新鲜.

Tho*_*yer 12

因为cookie是在另一条路径上设置的,所以你必须使用Cookies.removeCookie("cookieName", "/")(/作为你的例子中使用的路径)而不是Cookies.removeCookie("cookieName").

这是因为没有指定的路径,路径默认为当前页面之一(请参阅参考资料document.cookie).

所以,你试图在path =/desktop中删除cookie,而它实际上是在path = /,因此删除失败.
请记住,您可以拥有两个名称相同但路径不同的Cookie; 所以你可以有一个cookieNamepath=/ 一个_ cookieNamepath=/desktop.在删除的cookie path=/不会删除一个的path=/desktop,相反,去掉一个在path=/desktop不会删除一个的path=/.作为旁注:访问时/desktop,浏览器会发送两个cookie,这些cookie可能具有不同的值.

简而言之,因为你设置了你的cookie /,记得总是/作为路径传递到任何地方,或者你可以创建一个新的cookie而不是修改现有的cookie,或者不能删除它(你现在正在经历).

也可以看看 Cookies.removeCookie(String,String)