按名称删除 cookie?

新手上路,请多包涵

如何删除名为 roundcube_sessauth 的特定 cookie?

不应该以下:

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?

原文由 Charlie 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 734
2 个回答

您应该定义 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.example

在您的域名前放置一个 意味着此 cookie 可能存在于任何子域( www 也算作子域)。

此外,正如@RobertT 的回答中所述,无法在客户端使用 JavaScript 删除 HttpOnly cookie。

原文由 emii 发布,翻译遵循 CC BY-SA 4.0 许可协议

为了删除 cookie,请将 expires 日期设置为过去的日期。执行此操作的功能是。

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

然后删除名为 roundcube_sessauth 的 cookie。

 delete_cookie('roundcube_sessauth');

原文由 user672118 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题