java - GWT 中的 Cookies.removeCookie ("cookieName"未删除 Cookie

标签 java gwt cookies

场景:

我在页面 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/

相关文章:

java - windows-1252 字符 146 正在阻止 POST 数据到达 glassfish v2 中的 servlet

c# - GWT 将 header 发送到 c# 后端

javascript - 尝试使子域作为无 Cookie 域工作

cookies - Coldfusion 11中的CFToken/CFID

java - 无法使用 ant 运行 GWTTestCase 测试

javascript - 使用 javascript 在 cookie 中创建数组

java - 来自node js服务器的Json数据

java - 不填充电子邮件的 Android AutoCompleteTextView

java - 如何验证字符串是否为 YYYYMMDD 格式?

java - EditTextCell FieldUpdater 宽度