使用document.cookie删除不能在firefox上运行的cookie

时间:2014-04-10 16:42:47

标签: javascript cookies

下面的

是一个简单的注销脚本,可以通过单击我网站导航栏中的“LOGOUT”锚点来触发。 代码在chrome中运行良好但在firefox中没有做任何事情。

            $('a#UserLogout').on('click', function(e){
                e.preventDefault;
                document.cookie = '_session_login=""; expires="Thu, 01-Jan-70 00:00:01 GMT";';
                location.reload();
            });

PS。我有另一个语言偏好的cookie,它的工作代码如下:

function setCookie(cname,cvalue,exdays)
{
    var d = new Date();
    d.setTime(d.getTime()+(exdays*24*60*60));
    var expires = "expires="+d.toGMTString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
    location.reload();
}

我尝试在周日使用-365,但效果不佳

3 个答案:

答案 0 :(得分:2)

我遇到了这个问题(FF 29),解决方法是在设置cookie时设置路径。它不应该是需要的,因为通过规范(以及根据MDN)当路径被省略时,它应该默认为当前路径,但是它可能默认为/(root)或其他东西。
无论如何,在我的情况下,我正在删除域子文件夹中的cookie(例如www.example.com/SubFolder/)并指定匹配路径(例如SubFolder)允许我删除cookie。
通常将cookie路径设置为location.pathname应该可以解决问题。

答案 1 :(得分:1)

删除额外的引号并将其更改为此

document.cookie = '_session_login=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';

此外,您应该告诉浏览器强制从服务器加载页面,而不是缓存

window.location.reload(true);

答案 2 :(得分:1)

尝试使用1970

document.cookie = '_session_login=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';