AngularJS $ cookies.get()始终返回undefined

时间:2015-05-28 16:42:42

标签: javascript angularjs cookies

我正在使用AngularJS 1.4.0和$cookies服务。以下代码将始终打印出一个空对象:

(function() {
    var app = angular.module("user-cookies-service", []);

    app.service('UserCookiesService', ["$cookies", function($cookies) {
        $cookies.put("Hello", "World");
        console.log($cookies.getAll());
    }]);
})();

我试过了:

  • 使用AngulerJS 1.3.15和$cookieStore,当浏览器刷新时,cookie不会持续存在(但它至少创建了cookie)。
  • 添加有效期。
  • 确保在我的浏览器(Chrome)中启用Cookie。
  • 尝试普通的旧JS,但仍无效。

我无法在任何地方找到类似的问题。

谢谢。

3 个答案:

答案 0 :(得分:4)

有点晚,但对于有同样问题的人。我遇到了类似的问题。您必须确保将正确的选项作为第三个参数传递。在我的情况下,路径没有设置。 Angular使用您的<base>标记来设置路径。如果因任何原因无法使用,则不会设置cookie。

试试这个

$cookies.put('secret', 'I cant tell you' {
   expires: new Date(date),
   path: '/'
});

答案 1 :(得分:2)

任何偶然发现此问题的人......

默认情况下,Chrome不允许使用Cookie作为本地文件。您必须使用--enable-file-cookies标志运行它。

确保Chrome已关闭并打开Windows命令提示符/终端并运行以下命令:

<path-to-chrome>/chrome.exe --enable-file-cookies

这将允许您在本地放置/获取cookie。

干杯!

答案 2 :(得分:0)

刷新后应该可以使用cookie,尝试以相反的方式记录

console.log($cookies.getAll());
$cookies.put("Hello", "World");

首次加载:{},第二次加载:{“Hello”:“World”}

在角度1.3中,使用$ cookies.Hello =“world”;设置cookie