我认为知道这个答案将有助于我概念化浏览器存储的cookie和通过DOM提供的document.cookie之间的关系.
解决方法
document.cookie的行为不正常.浏览器处理对于读取和写入document.cookie的调用,与大多数对对象属性的调用不同.
设置document.cookie不会设置整个cookie字符串.相反,它会添加Cookie.例如:
alert(document.cookie); // The existing cookie string is "foo=bar; spam=eggs" document.cookie = "hello=world; lol=cats"; alert(document.cookie); // The cookie string might now say "foo=bar; spam=eggs; hello=world; lol=cats"
虽然Cookie的顺序可能会有所不同,但片段仍然说明了这一点.设置document.cookie设置指定的cookie,但不会因为新字符串中没有提到cookie而删除cookie.犯错误太容易了
当然,我不完全确定为什么API是这样构建的.我怀疑如果我们今天写的cookie API可能会有所不同,实际上会有读,写,删除等功能.但是,这是我们所拥有的.