场景:
我在页面 https://www.example.com/#step1 中设置 Cookie通过使用方法:
Cookies.setCookies("firstFileName","NewDocument");
Cookies.setCookies("firstFileExt","doc");
用户应该点击下一步并将自己重定向到 https://www.example.com/#step2 .但如果用户点击其他菜单(如“主页”、“关于我们”、“联系我们”),我将使用以下方法删除这些 Cookie:
Cookies.removeCookie("firstFileName");
Cookies.removeCookie("firstFileExt");
但是在删除时我发现这两个 Cookie 仍然保存在浏览器中的值,当我在 https://www.example.com/#step1 中执行以下操作时在设置这两个 Cookie 之前:
if(!Cookies.getCookie("firstFileName").toString().equals("undefined")){
Window.alert("firstFileName "+firstFileName);
}
我收到一个警告框,提示 firstFileName NewDocument
请告诉我如何设置和删除案例中的 Cookie。
最佳答案
如果您在不提供路径的情况下设置 cookie,如使用 Cookies.setCookies("firstFileName","NewDocument");
,则只能在同一页面上删除 cookie。
解决方案是始终为特定路径设置 cookie:
// TODO: set expiration time to something more useful
Date expires = new Date();
Cookies.setCookie("firstFileName","NewDocument", expires, null, "/", false);
然后你可以稍后调用它来删除它:
Cookies.removeCookie("firstFileName", "/");
由于您的应用程序基于相对路径“/”,因此每个页面都可以设置或删除cookie,并且所有页面访问相同的cookie 值。 如果您只是设置 cookie 而没有提供路径,您的应用程序的两个页面甚至可以设置不同的 cookie。
关于java - GWT 中的 Cookies.removeCookie ("cookieName"未删除 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28471290/