【问题标题】:How to handle cookie in Angular Js如何在 Angular Js 中处理 cookie
【发布时间】:2017-03-07 10:29:18
【问题描述】:

我正在开发一个混合移动应用程序,我是这方面的新手。作为项目的一部分,标头中有 cookie,用于验证我在服务器上的服务调用。现在我在点击注销选项时面临清除 cookie 或标题的问题。由于这个应用程序即使没有输入凭据也会被记录。请帮助我处理这种情况的可能方法。

我需要处理 Set-Cookie 参数。如果需要任何信息,请告诉我。我是全新的,所以如果有任何信息遗漏,请忽略。

【问题讨论】:

    标签: angularjs cookies session-cookies hybrid-mobile-app setcookie


    【解决方案1】:

    基本上,服务器应该在注销操作后返回 Set-Cookie: %auth_key%:null,但您可以通过 ngCookies 模块中的 $cookies 提供程序手动取消设置 cookie。 https://docs.angularjs.org/api/ngCookies/service

    angular.module('cookiesExample', ['ngCookies'])
    .controller('ExampleController', ['$cookies', function($cookies) {
      // Retrieving a cookie
      var favoriteCookie = $cookies.get('myFavorite');
      // Setting a cookie
      $cookies.put('myFavorite', 'oatmeal');
      // Removing a cookie
      $cookies.remove('your_auth_key');
    }]);
    

    编辑:

    var commonHeaderModule = angular.module('commonHeaderModule', ['ngCookies']);
    
    commonHeaderModule.controller('commonHeaderController', ['$scope', '$cookies', '$lo‌​cation', '$rootScope'‌​,
        function($scope, $cookies, $location, $rootScope) {
            $(document).on('click', function() {
                $('.collapse').collapse('hide');
            });
            $scope.logout = function() {
                $cookies.remove('Cookie');
                alert("done");
            }
        }
    ]);
    

    【讨论】:

    • 我没有登出服务,需要手动处理。我已经尝试了上述方法,但它的抛出错误。下面是我的代码。 var commonHeaderModule = angular.module('commonHeaderModule',['ngCookies']); commonHeaderModule.controller('commonHeaderController',['$scope','$cookies','$location','$rootScope',function($scope,$cookies,$location,$rootScope){ $(document).on ('click',function(){ $('.collapse').collapse('hide'); }) $scope.logout = function(){ $cookies.remove('Cookie'); alert("done" ); } }]);
    • TypeError: undefined is not a function at k.$scope.logout (file:///android_asset/www/js/modules/commonHeaderController.js:9:14) at file:/// android_asset/www/lib/js/angular.min.js:176:387 at file:///android_asset/www/lib/js/angular.min.js:193:521 at k.$eval (file:// /android_asset/www/lib/js/angular.min.js:112:15)
    • 你真的安装了 ngCookies 吗?这是一个单独的模块,您可以通过 bower ( bower install angular-cookies ) 安装它或手动下载 ( code.angularjs.org/1.5.8 )。
    • 是的,我已经安装了。
    • 你能复制粘贴我在上面编辑部分发布的代码并检查它是否有帮助吗?看起来 $co‌​okies 和 $rootScope 变量有看不见的符号(或看起来相同的非拉丁字母)。另请检查要在同一字符集中导入的其他依赖项。
    猜你喜欢
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    相关资源
    最近更新 更多