AngularJS $cookies.get() 总是 returns 未定义

AngularJS $cookies.get() always returns undefined

我正在使用 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());
    }]);
})();

我试过:

我在任何地方都找不到类似的问题。

谢谢。

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

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

确保 Chrome 已关闭并打开 Windows 命令 Prompt/Terminal 和 运行 以下命令:

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

这将允许您在本地 put/get cookie。

干杯!

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

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

第一次加载:{},第二次加载:{"Hello":"World"}

在angular1.3中,使用$cookies.Hello = "world";设置 cookie

有点晚了,但对于遇到同样问题的人来说。我有一个类似的问题。您必须确保将正确的选项作为第三个参数传递。在我的例子中,路径没有被设置。 Angular 使用您的 <base> 标签设置路径。如果出于某种原因不可用,则不会设置 cookie。

试试这个

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