【问题标题】:How to delete ngCookie (angular-cookies)如何删除 ngCookie (angular-cookies)
【发布时间】:2017-08-31 07:56:12
【问题描述】:

我在启动应用程序时创建了一个名为“stateCookie”的 cookie。当我改变状态时,我将变量添加到那个 cookie 中。当我注销时,我希望这个 cookie 被完全销毁,或者清空。

On their docs it's just remove() 我已经完成了,但 cookie 仍然存在。即:$cookies.remove('stateCookie');

注销并登录后: >>> refreshCookie {"ticker":"SPY","term_id_1":5112166,"term_id_2":30111615,"term_id_3":13064871}


this.logout = () => AuthFactory.webservice_logout().then((res) => {
    // $cookies.remove('stateCookie');
    angular.forEach($cookies, function(value, key) {
        $cookies.remove(key);
    });

    // console.log('$cookies', $cookies);

    // $cookies.map((value, key) => {
    //  $cookies.remove(key);
    // });

    const refreshCookie = $cookies.get('stateCookie');
    console.log('!!!refreshCookie', refreshCookie);
    $state.go('login', {}).then(() => {
        $state.reload();
    });
});

黑客修复

回到login 状态后,我可以通过调用window.reload 来清除cookie。

$state.go('login', {}).then(() => window.location.reload(true));

【问题讨论】:

  • 试过了,cookie仍然存在:(登录后也存在

标签: javascript angularjs cookies angular-cookies


【解决方案1】:

试试这个:

this.logout = () => AuthFactory.webservice_logout().then((res) => {
    // $cookies.remove('stateCookie');
    var cookies = $cookies.getAll();
    console.log(cookies);
    angular.forEach(cookies, function(value, key) {
        $cookies.remove(key);
    });

    // console.log('$cookies', $cookies);

    // $cookies.map((value, key) => {
    //  $cookies.remove(key);
    // });

    const refreshCookie = $cookies.get('stateCookie');
    console.log('!!!refreshCookie', refreshCookie);
    $state.go('login', {}).then(() => {
        $state.reload();
    });
});

【讨论】:

  • 好吧,这行得通,但我仍然必须使用 window.location.reload(true) 而不是 $state.reload()
猜你喜欢
  • 2011-01-01
  • 2014-11-20
  • 2012-02-13
  • 1970-01-01
  • 2023-04-02
  • 2018-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多