【问题标题】:Cookie return undefined in GWTCookie 在 GWT 中返回未定义
【发布时间】:2015-03-10 17:36:21
【问题描述】:

我已经为用户名创建了 cookie。它工作正常。

但我的问题是: 当我清除 cookie 并尝试 Cookies.getCookie("uname");然后它会返回 undefined insted of null。

那么如何处理未定义的值呢?

我正在尝试如果未设置 uname 则转到 else 部分;

请帮帮我。

【问题讨论】:

  • 你确定? JavaDoc 表示它返回:cookie 的值,如果 cookie 不存在,则返回 null
  • 是的@spider。我确定。我正在尝试检查 cookie 是否为空。但它永远不会返回 null 并返回 undefined。
  • 您确定没有通过尝试将 Cookie 设置为null 服务器端来设置“未定义”吗? GWT 文档非常明确,我不想在一开始就假设他们有错误。当你“清除 cookie”时检查你的标题。
  • 它是返回字符串“未定义”还是抛出异常,说明变量为“未定义”。这是什么浏览器,如果它返回字符串“未定义”而不是空的,这听起来像是一个浏览器问题。我同意服务器或客户端上的其他人将 cookie 设置为“未定义”的观点。您可以尝试清除 cookie,关闭浏览器并重新打开以查看是否有相同的结果。我在清除 cookie 时看到了奇怪的现象,但页面仍然打开。

标签: gwt cookies


【解决方案1】:

是的,就是这样。设计失败,请看这里
https://code.google.com/p/google-web-toolkit/issues/detail?id=2994

推荐的解决方法有效:

String val = Cookies.getCookie("uname");
if (val == null || "undefined".equals(val)) {
  ...
} else {
  ...
}

但通常即使没有这种解决方法,它似乎也能正常工作。在我的例子中,我在 JavaScript 级别得到了“未定义”,但在 Java 代码中,检查 null 就足够了。让代码崩溃的真正问题是在几行之后,并且与 getCookie() 方法没有任何关系。所以看看你是否真的确定了问题所在。

【讨论】:

    猜你喜欢
    • 2017-03-12
    • 2012-08-25
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 2015-09-08
    • 2011-10-08
    相关资源
    最近更新 更多