javascript - 按名称删除 cookie?

标签 javascript cookies

如何删除名称为 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?

最佳答案

您应该定义 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 的回答中提到的,HttpOnly cookie 无法在客户端使用 JavaScript 删除。

关于javascript - 按名称删除 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10593013/

相关文章:

javascript - 延迟后显示 cookie 警报

google-chrome - Chrome 和 Firefox 未清除 JSESSIONID cookie 会导致重定向循环

javascript - 如何让这个 cookie 横幅发挥作用?

javascript - 不能对 D3 v4 中的对象使用 attr

javascript - 避免 React 中的内联函数 : How to bind functions with arguments?

javascript - 如何显示 cookie 的输出?

node.js - 验证 Json Web Token 并在登录后重定向

javascript - 以 PDF 格式导出 HTML 数据表

javascript - res.send 未返回预期数据 : JavaScript, Express、Node?

javascript - 如何正确堆叠砌体布局和延迟加载图像?