按名称删除Cookie?

2020/11/07 07:23 · javascript ·  · 0评论

如何删除名称为的特定Cookie roundcube_sessauth

以下内容不应该:

function del_cookie(name) {
    document.cookie = 'roundcube_sessauth' + 
    '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
} 

然后:

<a href="javascript:del_cookie(name);">KILL</a>

杀死roundcube_sessauth饼干?

您应该定义cookie所在的路径,以确保删除正确的cookie。

function set_cookie(name, value) {
  document.cookie = name +'='+ value +'; Path=/;';
}
function delete_cookie(name) {
  document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}

如果未指定路径,浏览器将相对于您当前所在的页面设置一个cookie,因此,如果您在其他页面上删除该cookie时,另一个cookie继续存在。

根据@Evan Morrison的评论进行编辑。

请注意,在某些情况下,要标识正确的cookie,
Domain则需要参数。

通常将其定义为
Domain=.yourdomain.com在您的域名前

放置一个
意味着该cookie可以存在于任何子域中(www也算作子域)。

另外,如@RobertT的回答中所述,HttpOnly不能在客户端使用JavaScript删除cookie。

为了删除Cookie,请将expires日期设置为过去的某个日期。一个可以做到这一点的功能。

var delete_cookie = function(name) {
    document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
};

然后删除一个名为roundcube_sessauthdo的cookie

delete_cookie('roundcube_sessauth');

//如果传递的exMins = 0,它将在创建后立即删除。

function setCookie(cname, cvalue, exMins) {
    var d = new Date();
    d.setTime(d.getTime() + (exMins*60*1000));
    var expires = "expires="+d.toUTCString();  
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

setCookie('cookieNameToDelete','',0) // this will delete the cookie.

我不确定这是否适用于12年5月的Roundcube版本,但是对于当前版本,答案是您无法roundcube_sessauth从JavaScript删除cookie,因为它被标记为HttpOnly这意味着无法从JS客户端代码访问它,并且只能通过服务器端脚本或通过直接用户操作(通过某些浏览器机制,例如集成调试器或某些插件)将其删除。

您可以尝试此解决方案

var d = new Date();
d.setTime(d.getTime());
var expires = "expires="+d.toUTCString();
document.cookie = 'COOKIE_NAME' + "=" + "" + ";domain=domain.com;path=/;" + expires;

就我而言,我在不同的环境下使用了打击代码。

  document.cookie = name +`=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;Domain=.${document.domain.split('.').splice(1).join('.')}`;
本文地址:http://javascript.askforanswer.com/anmingchengshanchucookie.html
文章标签: ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!