什么会阻止AngularJS $ cookies写一个cookie?

时间:2016-06-07 16:46:09

标签: javascript angularjs cookies angular-cookies

我正在尝试使用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);

...产生以下输出:

  

old:ZmVhZDE ... =
  新:ZmVhZDE ... =

不会抛出任何错误。尝试编写新cookie时也会出现同样的情况:

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

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

document.cookie = 'TEST=TESTVALUE';

这可能是什么原因?

2 个答案:

答案 0 :(得分:1)

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

我们使用此域/路径配置解决了该问题:

$cookies.put('myCookie', true, {
    domain: '.mydomain.com',
    path: currentUrl,
    expires: exp
});

答案 1 :(得分:-1)

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

e.g。

password_hash()

实际上找到了一个可能有帮助的cookie线程:How to set expiration date for cookie in AngularJS