由于我的用户已将其会话配置为每次重新打开firefox浏览器时重新打开。 '会话'饼干回来了。 但是如果会话cookie不存在或者24小时之前我的网站需要新的身份验证。所以我每次在24小时后重新打开浏览器时都需要手动删除过期的cookie。
为了解决这个问题,我厌倦了在我的页面上添加一个“注销”链接,这应该对我有帮助。但不幸的是它没有帮助...
我尝试下面的代码删除cookie,但似乎它不会从firefox存储其cookie的sqilte表中删除cookie。运行以下代码后,cookie重新出现..(或者它们没有被删除???)我怎样才能实现呢?
代码:
function Delete_Cookie( name, path, domain )
{
document.cookie=name+"="+((path) ? ";path="+path:"")+((domain)?";domain="+domain:"")+";expires=Thu, 01 Jan 1970 00:00:01 GMT";
}
$("#Logout").click(function() {
Delete_Cookie('SecOne','/','.mydomain.com');
Delete_Cookie('SecTwo','/','.mydomain.com');
alert("Bye");
});
答案 0 :(得分:0)
虽然我不能确定问题是什么,但有几种可能性:
域名可能有误。
您可以编写一个不使用路径和域名的测试删除行,然后查看它是否有效。如果cookie在更改后被删除,那么它就是您为删除行所做的字符串,或者传入的参数是错误的。
此外,您的代码的另一部分可能会导致cookie重新出现。检查是否有任何其他cookie设置在此之后被调用的东西。
或者可能需要重新加载页面才能使cookie消失
答案 1 :(得分:0)
如果cookie是HttpOnly cookie,则无法从HTTPS安全网页读取/删除。如果cookie是正常的,则以下功能可用于删除cookie。
function deleteCookie(keyName){
var allcookies = document.cookie, i, cookiearray = null, name = null;
cookiearray = allcookies.split(';');
for (i = 0; i < cookiearray.length; i++) {
name = cookiearray[i].split('=')[0].trim();
if (name === keyName) {
document.cookie = name + '=000;expires=Thu, 1 Jan 1970 00:00:00 UTC; path=/';
}
}
}
注意:即使浏览器被关闭,会话cookie也无法删除。这是Chrome浏览器中的已知错误。请参阅以下链接 Cookie issue in chrome
答案 2 :(得分:0)
我知道这是一个老线程,但我遇到了同样的问题,因为我一直试图在过去设置一个cookie,认为它会过期而不会显示在FF cookie管理器中。
将Cookie设置为将来过期但具有空白值可以摆脱它。不知道为什么。
setcookie(mycookie,&#34;&#34;,time()+ 5000,&#39; /&#39;);
使用FireFox v40.0.3
似乎用Firefox记录了一些错误并且它处理了cookie过期。