我使用了库js-cookie。以前,我使用jquery.cookie
。
我有一些重复cookie条目的问题。
有一段时间,当我打电话
Cookies.set('my-cookie-name', 'value', {'path': '/'});
我确信我在我的代码中只将这个方法称为一个地方,但结果我有:
---------------------------------------------------------------
Name Value Domain Path
---------------------------------------------------------------
my-cookie-name 1 mydomain.com /foo/bar/
my-cookie-name value mydomain.com /
---------------------------------------------------------------
每次都不会发生这种情况。 这个问题很少发生,所以很难捕捉到。此时我在设置新值之前删除cookie并且不再发现问题。但我认为这是错误的用法。
名称为'my-cookie-name'
的Cookie仅设置在一个代码位置。
这个问题我在我的开发机上遇到了,所以它不能成为一个旧的cookie。
我用它来切换一些状态。我的意思是这样的:
var state = 'on';
$elem.on('click', function(e){
state = state === 'on' ? 'off' : 'on';
Cookies.set('my-cookie-name', state, {path: '/'});
});
可能是错误的用法?我需要在设置新值之前删除旧cookie吗?
浏览器:Chrome v45
答案 0 :(得分:1)
Cookie由其域,路径和安全属性定义,您需要格外小心以避免重复。
但为什么会发生这种情况呢?这很难说,但这是我的理论:
Cookies
方法的行为,然后当您调用Cookies.set()
时,它会复制cookie。除了这些选项之外,我无法想到发生这种情况的另一个原因。
我建议您关注this guide,它会告诉您如何减少代码以缩小问题范围。
我们计划write some docs about duplicated cookies。在同一链接中,您可以找到可帮助您解决问题的相关主题。
我希望它有所帮助。