【问题标题】:Cannot retrieve javascript cookie after dropping cookie before redirect在重定向之前删除 cookie 后无法检索 javascript cookie
【发布时间】:2016-08-01 05:51:05
【问题描述】:

我的页面 HTML 包含一个跨度(带有文本),其 onClick = "goDropShip();"

该页面包含一个脚本,其中包含:

function goDropShip() {

    var date = new Date();
    date.setTime(date.getTime()+(24*60*60*1000));
    document.cookie = "dropShip=true; expires="+date.toGMTString();
    window.location.href="http://www.domain.com";

}

我已通过“alert()”验证该函数实际上正在执行。并且在成功删除 cookie 后立即对其进行测试。但是,重定向后,cookie 似乎是空的。

www.domain.com 的 index.html(接收此重定向)有一个包含以下内容的脚本:

if (document.cookie.indexOf("dropShip=true") >= 0  ) {
    window.location = "http://www.domain.com/processDropShip";
}

但是,重定向后 cookie 似乎完全空白。

我正在尝试.indexOf(),只是因为尝试按名称检索 cookie 也失败了,所以我试图在整个 document.cookie 文本中查找 cookie。

我可能只是没有正确使用 cookie,或者我不知道该怎么做。

请原谅“dropShip”在这种情况下似乎没有意义,但出于安全原因,我不得不混淆细节。但我唯一改变的是cookie名称。

一如既往,感谢您的帮助。

【问题讨论】:

  • Cookie 是特定于域的。是同一个域吗?
  • 如果您设置 cookie 的域不是 http://www.domain.com(www. 与 http 或 https 不同,必须是相同的子域等),那么您将无法读取另一侧的 cookie。但是,如果您使用的是同一个域,那么您应该确保您还指定了 cookie 存在的路径。例如path=/
  • Ultimater,你能举一个代码中的路径示例吗?谢谢

标签: javascript redirect cookies


【解决方案1】:

如果您设置 cookie 和重定向到的域相同,您只需在添加 cookie 时将路径设置为 /,以便在整个域中都可以访问它。

document.cookie = "dropShip=true; path=/; expires="+date.toGMTString();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-29
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    相关资源
    最近更新 更多