以编程方式清除浏览器中的会话Cookie

时间:2015-04-11 15:47:13

标签: javascript session cookies

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

由于它是会话Cookie并且没有到期日期,因此设置过去的过期日期将不会像持久性Cookie那样有效。

我的网站有一个当前会话,但我们有一个连接到另一个网站的iframe。该站点创建会话cookie。我想清除他们的会话cookie而不影响我们的会话。我可以通过clear cookies选项在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";
    }
}

1 个答案:

答案 0 :(得分:0)

了解Same-origin policy

简而言之,如果iframe是从运行JavaScript的页面的其他域加载的,那么您就无法访问cookie。这是安全限制。

如果iframe是与您的JavaScript相同的域和页面,那么您可以通过查看到期日期或为其分配空值来删除iframe的cookie。