小编典典

按名称删除 cookie?

all

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


阅读 69

收藏
2022-08-03

共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.example. 在您的域名前放置一个
www表示此 cookie 可能存在于任何子域(也算作子域)上。

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

2022-08-03