如何使用通过javascript或viceversa创建的coldfusion删除cookie



我正在使用代码使用javascript创建cookie

document.cookie="USERNAME=xyz";

在那之后,我试图通过代码使用coldfusion删除相同的cookie

<cfcookie name="USERNAME" value="0" expires="now"/>

但我无法删除cookie,它仍然显示在浏览器控制台(firebug)中。在转储cookie时,它会显示javascript创建的cookie,即使在多次刷新页面后也是如此。

如果coldfusion创建了一个cookie并试图通过javascript删除它,也会发生同样的情况。使用coldfusion,我可以获取cookie值或更改由javascript创建的cookie的cookie值,但无法删除该cookie。

使用此代码使用coldfusion 更改/设置cookie的值

<cfset coookie.USERNAME = 0> 

有什么理由这样做或以任何方式删除吗?

我自己也在努力解决这个问题。对我来说,这是一个preservecase问题。默认情况下,当使用<cfcookie>标记设置cookie时,ColdFusion会将cookie设置为全大写条目。因此,当您使用<cfcookie>删除它时,它会按预期删除,因为删除操作也在查找具有所有大写字母的cookie。

然而,当使用JavaScript设置cookie时,很可能您将cookie设置为小写(或大小写混合名称),因此当CF删除cookie时,它找不到全大写版本。

当您要删除cookie时,请确保使用<cfcookie>标记上的preservecase=true属性。

编辑:再读一遍你的问题后,我注意到你的情况似乎是正确的。然而,根据我的经验,这是你肯定想仔细检查的事情,以及其他cookie属性(路径、域等)

最新更新