*真的吗?用javascript删除cookies

*真的吗?用javascript删除cookies,javascript,cookies,Javascript,Cookies,在javascript中删除cookie的方法是将到期日期设置为过去。现在,这实际上并没有删除cookie,至少在Firefox中是这样。这只意味着浏览器关闭时cookie将被删除 这对我们来说是一个问题:我们有一个产品,它涉及到归档来自许多站点的网页,所有这些内容都存储在我们的服务器上。为了确保页面正确呈现,我们还包括了所有的js。然而,cookies通常是由js设置的,鉴于页面缓存在我们的服务器上,这些cookies设置在我们的域下 因此,随着时间的推移,来自数十个存档站点的cookie在我

在javascript中删除cookie的方法是将到期日期设置为过去。现在,这实际上并没有删除cookie,至少在Firefox中是这样。这只意味着浏览器关闭时cookie将被删除

这对我们来说是一个问题:我们有一个产品,它涉及到归档来自许多站点的网页,所有这些内容都存储在我们的服务器上。为了确保页面正确呈现,我们还包括了所有的js。然而,cookies通常是由js设置的,鉴于页面缓存在我们的服务器上,这些cookies设置在我们的域下

因此,随着时间的推移,来自数十个存档站点的cookie在我们的域下建立起来。最终,Cookie头超过了最大内容长度,导致HTTP 400错误代码

而且,由于我们的客户大多在公司环境中,他们从不重新启动机器或关闭浏览器:他们可能会开上几个月。所以这种“软”删除不起作用,至少不可靠


是否有任何方法可以在javscript中物理删除会话内的Cookie?或者,是否有任何方法可以阻止设置它们?

您可以使用新的cookie覆盖cookie。

除了在过去设置过期时间外,还可以将该值设置为空字符串。这至少会立即减少cookie的大小

我认为应该立即删除所有浏览器中的cookie。例如,当我注销网站时,Firefox不要求我关闭浏览器来删除显示我已登录该网站的cookie。如果这种情况没有发生,我建议您调查Firefox的bug,并可能与它们一起打开一个新的bug

同时,我会查看我的web服务器,看看是否有可能将最大内容长度设置为比现在更高的值


“这是因为我们没有使用iFrame,所以出现了这个问题。缓存的页面是由我们的服务器呈现的,所以任何cookie都会在我们的域下设置。”--OP


如果您无法控制设置cookie的javascript(这似乎非常奇怪,为什么您没有控制权?),那么您可以不断地读取和清空cookie,将数据转储到另一个更大的数据库(最好是服务器端,或者HTML5客户端存储)。

这是不可能的。时期我已经为此挣扎了好几个星期,没有找到解决办法

谁发明了
cookie
getter/setter应该是%insert\u popular\u population\u here%

特别是当涉及到删除cookie时,InternetExploder是一个怪兽。我不记得确切的问题了,但我认为它涉及到https和包含
的cookie名称


我所能提供的只是一个解决方法:用400条回复发送回复正文,类似于“请重新启动浏览器”。

为什么标题超过最大内容长度?因为用户正在存档的站点在我们的域下设置了cookie。存档的站点越多,设置的cookie越多。更清楚地说:用户将查看这样的存档页面:。因此,如果此页面在js中设置cookie,它将在我们的域下设置。请澄清“用户正在存档的站点在我们的域下设置cookie”。您可能知道,其他域不可能在您的域下设置cookie,因此它们必须使用iFrame或其他东西,而您必须设置这些cookie,对吗?只使用一个cookie有什么问题?@ninjagecko,我认为他们正在获取其他人的站点,而归档的javascript正在设置cookie。这是因为我们没有使用iFrame,所以我们有这个问题。缓存页面由我们的服务器呈现,因此在我们的域下会设置任何cookie。但是cookie仍然存在,并且仍然会影响cookie头的长度,即使您将内容设置为“”;是的,我们正在这样做,但长的cookie名称没有帮助:)啊,可爱的,多个没有解释的否决票,当我特别提到OP的问题时。。。(耸耸肩哦好)