【问题标题】:How to remove all cookies in Angularjs?如何删除Angularjs中的所有cookie?
【发布时间】:2014-12-23 19:54:33
【问题描述】:

我可以这样设置 cookie:

$cookieStore.put('myCookie','I am a cookie');

我可以删除它

$cookieStore.remove('myCookie');

但我怎样才能删除所有 cookie?

【问题讨论】:

  • 你有cookies的所有key吗?
  • 我正在寻找通用解决方案...

标签: angularjs cookies angular-cookies


【解决方案1】:

好的,显然这可能不是最好的解决方案,但我找到了解决方法:

angular.forEach($cookies, function (v, k) {
    $cookieStore.remove(k);
});

但如果有更好的解决方案,我仍然会很感激。我真的很好奇为什么没有内置的$cookieStore.removeAll() 方法...

需要安装 ngCookies 模块。

编辑

在 1.4 版本中,$cookieStore 已弃用。相反,您可以使用$cookies 服务。使用$cookies.getAll() 获取所有cookie,并使用$cookies.remove('key') 删除每个cookie。

var cookies = $cookies.getAll();
angular.forEach(cookies, function (v, k) {
    $cookies.remove(k);
});

【讨论】:

  • $cookieStore 已弃用,请改用 $cookie
  • 当我调用上面的函数时,它会得到一些其他的 cookie,比如 google 和 _ga ...如何避免这种情况..
  • 上述方法会删除您的域设置的所有cookie。过滤这些 cookie 超出了这个问题的范围。但是您可以简单地制作一个列表并检查 cookie 密钥是否在该列表中...
【解决方案2】:

如果您在此页面上并且正在处理使用 angular 1.3.x 或更低版本的旧项目,您可以简单地使用它

$cookies.cookieKey = undefined;
delete $cookies['cookieKey'];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-27
    • 2013-03-15
    • 2011-05-27
    • 2012-11-18
    • 2017-05-19
    • 2020-12-27
    • 2012-09-10
    相关资源
    最近更新 更多