一尘不染

按名称删除Cookie?

javascript

如何删除名称为特定的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饼干?


阅读 254

收藏
2020-05-01

共1个答案

一尘不染

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

2020-05-01