【问题标题】:Clear Session Cookie in Browser Programmatically以编程方式清除浏览器中的会话 Cookie
【发布时间】:2015-06-17 06:08:26
【问题描述】:

如何以编程方式清除驻留在浏览器内存中的会话 cookie,最好使用 javascript?

由于它是一个会话 cookie,并且没有到期日期,因此将到期日期设置为过去将不会像对持久性 cookie 那样起作用。

我的网站有一个当前会话,但我们有一个连接到另一个网站的 iframe。该站点创建一个会话 cookie。我想在不影响我们的情况下清除他们的会话 cookie。我可以通过清除 cookie 选项在 Firefox 中执行此操作,但我需要以编程方式执行此操作。

谢谢


我从未尝试过以下删除 cookie 的方法,因为我读到会话 cookie 没有到期日期,但这是我发现的。这对重置会话 cookie 有用吗?我知道这会删除所有 cookie,但我可以修改它。

function deleteCookies() {
   var allcookies = document.cookie.split(";");

   for (var i = 0; i < allcookies.length; i++) {
        var cookie = allcookies[i];
        var eqPos = cookie.indexOf("=");
        var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
        document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
    }
}

【问题讨论】:

  • 请告诉我们你的方法,失败了。
  • @erndenson,我从未尝试过以下删除 cookie 的方法,因为我读到会话 cookie 没有到期日期,但这是我发现的。这对重置会话 cookie 有用吗?函数 deleteCookies() { var allcookies = document.cookie.split(";"); for (var i = 0; i -1 ? cookie.substr(0, eqPos) : cookie; document.cookie = name + "=;expires=Thu, 1970 年 1 月 1 日 00:00:00 GMT"; } }

标签: javascript session cookies


【解决方案1】:

了解Same-origin policy

简而言之,如果 iframe 是从运行 JavaScript 的页面的不同域加载的,则您无法访问 cookie。这是安全限制。

如果 iframe 是同一个域并且与您的 JavaScript 页面相同,那么您可以通过更改过期日期或为其分配空值来删除 iframe 的 cookie。

【讨论】:

    猜你喜欢
    • 2014-04-04
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    相关资源
    最近更新 更多