【问题标题】:How to clear cookies in angular.js如何清除 angular.js 中的 cookie
【发布时间】:2014-01-26 03:21:17
【问题描述】:

目前正在使用 angulajs 应用程序。

我想在 cookie 中存储一些值。所以我使用angular-cookies-min 脚本为cookies添加一些值

我已使用以下代码将值保存到 cookie。

 $cookieStore.put("userInfo", userInfo);//userInfo is a array with some values. 

现在我想清除 cookie?我该怎么做?

【问题讨论】:

    标签: javascript jquery angularjs session-cookies angular-cookies


    【解决方案1】:

    试试这个删除cookie的代码

    $cookieStore.remove("userInfo");
    

    编辑:由于 v1.4 $cookieStore 已被弃用(请参阅 docs),因此从该版本开始您应该使用:

    $cookies.remove("userInfo");
    

    【讨论】:

    • UP :现在在 Angular 1.4 中已弃用,更喜欢使用 $cookies。
    • $cookies.remove('user'); var cookie = $cookies.get('user');而且我总是得到价值,那么它正在删除什么?
    • @AliAdravi:我也有同样的问题。
    • 删除时也应该检查 cookie 的路径:$cookies.remove("userInfo", {path: "/"});
    • 为了清除所有cookies,我使用了这个单行:for(var x in $cookies) { $cookies.remove(x); }
    【解决方案2】:

    我找到了答案

    选项 1

    delete $cookies["userInfo"]
    

    选项 2

     .controller('LogoutCtrl', ['$scope',  '$cookies', function ($scope,$cookies) {
    
        $cookies.userInfo = undefined;
    
    }]);
    

    【讨论】:

      【解决方案3】:
      angular.forEach($cookies, function (cookie, key) {
          if (key.indexOf('NAV-') > -1) {
               $window.sessionStorage.setItem(key, cookie);
               delete $cookies[key];
          }
       });
      

      上面的代码对我有用,但是 Chrome 检查实用程序的“资源”选项卡继续显示 cookie 没有被删除。我通过打印出来验证了 cookie 确实被删除了:

      console.log('START printing cookies AFTER deleting them');
       angular.forEach($cookies, function (cookie, key) {
          console.log(key + ': ' + $cookies[key] + '\n');
       });
       console.log('DONE printing cookies AFTER deleting them');
      

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2012-05-23
        • 2017-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-14
        • 2022-05-12
        • 2013-08-18
        • 1970-01-01
        相关资源
        最近更新 更多