【问题标题】:Unable to store cookies in AngularJs无法在 AngularJs 中存储 cookie
【发布时间】:2018-01-10 21:06:06
【问题描述】:

我正在AngularJs 从事一个小项目,我试图将用户名和密码存储到浏览器 cookie 中。

这是我的 app.js 代码。你可以看到我已经注入了 ngCookies 作为依赖注入。

var app = angular.module('myApp', ['ui.router', 'myApp.routes', 'ngCookies']);

以下是我的登录控制器。

app.controller('loginCtrl', function($scope, loginService) {

    $scope.login=function(user){
        loginService.login(user);
    }

});

这是我的服务,它正在调用数据进行身份验证

app.factory('loginService', function($http, $state, $cookies){
    return{
        login:function(user){
            var storedUser = $http.get('data/user.json').
                success(function(data) {

                if(user.email === data.email && user.password === data.password ){
                    //var favoriteCookie = $cookies.get('userEmail');
                    $cookies.put("userEmail", user.email);
                    $cookies.put("password", user.password);    
                    $state.go('dashboard', {});
                } else {
                    alert("Invalid Username or Password");
                }

                })
            }
        }
});

当我运行我的项目时,我收到了这个错误。 $cookies.put 不是控制台中的函数

注意:AngularJs 和 Angular-cookies 的版本是 AngularJS v1.2.28

【问题讨论】:

标签: javascript html angularjs


【解决方案1】:

请使用$cookieStore 而不是$cookies

试试这个

app.factory('loginService', function($http, $state, $cookieStore){
    return{
        login:function(user){
            var storedUser = $http.get('data/user.json').
                success(function(data) {

                if(user.email === data.email && user.password === data.password ){
                    //var favoriteCookie = $cookies.get('userEmail');
                    $cookieStore.put("userEmail", user.email);
                    $cookieStore.put("password", user.password);    
                    $state.go('dashboard', {});
                } else {
                    alert("Invalid Username or Password");
                }

                })
            }
        }
});

【讨论】:

  • 使用 $cookieStore 而不是 $ngCookies 背后的任何具体原因?正如我在 angularJs 网站上看到的那样注意:不推荐使用 $cookieStore 服务。请改用 $cookies 服务。
  • @NileshMahajan 如果您查看github.com/angular/angular.js/blob/master/src/ngCookies/…,您会在ngCookies 模型中看到factory
  • $cookieStore 已被弃用,取而代之的是 $cookie
【解决方案2】:

而不是$cookie.put

var userdetails = { userEmail: user.email, password: user.password };

$cookies.UserDetails = angular.toJson(userdetails);

【讨论】:

    猜你喜欢
    • 2017-01-24
    • 2021-01-29
    • 1970-01-01
    • 2014-11-28
    • 2014-11-21
    • 1970-01-01
    • 2015-05-22
    • 2018-07-20
    • 2014-04-23
    相关资源
    最近更新 更多