我正在尝试使用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';
这可能是什么原因?
答案 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