0

我正在尝试使用 AngularJS v1.5.x $cookies服务编写一个简单的 cookie。依赖项都是正确的,因为我可以读取 cookie。但是,写入和编辑都不起作用。

例如:

var blah = $cookies.get('mysite_auth');
console.log('old: ' + blah);

$cookies.put('mysite_auth', 'blech');

blah = $cookies.get('mysite_auth');
console.log('new: ' + blah);

...导致以下输出:

旧:ZmVhZDE ... =
新:ZmVhZDE ... =

没有错误被抛出。尝试写入新 cookie 时也会发生同样的情况:

$cookies.put('someCookie', 'yup');

我可以像这样在我的控制器中写一个 cookie:

document.cookie = 'TEST=TESTVALUE';

这可能是什么原因?

4

2 回答 2

1

事实证明,Angular $cookies 正在写入 cookie,但我们遇到了域/路径问题。因为我们的 Angular 应用程序位于后端应用程序目录之外,所以页面 URL 与服务器路径不匹配。如果我访问了实际路径,而页面没有正确加载,则 cookie 存在。

我们解决了这个域/路径配置的问题:

$cookies.put('myCookie', true, {
    domain: '.mydomain.com',
    path: currentUrl,
    expires: exp
});
于 2016-06-08T16:10:39.687 回答
-1

您是否尝试过为您的 cookie 设置过期时间?

例如

var dDate = new $window.Date(),
var dExp = new $window.Date(dDate.getFullYear(), dDate.getMonth()+1, dDate.getDate());

$cookies.put('someCookie','yup', {expires: dExp});

var cCookie = $cookies.get('someCookie');
console.log(cCookie);

刚刚发现一个实际上可能有帮助的 cookie 线程:如何在 AngularJS 中设置 cookie 的过期日期

于 2016-06-07T16:55:07.833 回答