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

coh*_*air 6 javascript cookies angularjs

我正在使用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());
    }]);
})();
Run Code Online (Sandbox Code Playgroud)

我试过了:

  • 使用AngulerJS 1.3.15并且$cookieStore在刷新浏览器时cookie不会持久存在(但它至少创建了cookie).
  • 添加到期日.
  • 确保在我的浏览器(Chrome)中启用了Cookie.
  • 尝试普通的旧JS,仍然无法正常工作.

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

谢谢.

Jos*_*llo 5

有点晚了,但是对于有同样问题的任何人。我有一个类似的问题。您必须确保将正确的选项作为第三个参数传递。就我而言,没有设置路径。Angular使用您的<base>标签来设置路径。如果由于某种原因而无法使用它,则不会设置cookie。

尝试这个

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


coh*_*air 3

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

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

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

<path-to-chrome>/chrome.exe --enable-file-cookies
Run Code Online (Sandbox Code Playgroud)

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

干杯!