【问题标题】:How to delete a cookie using coldfusion which is created through javascript or the viceversa?如何使用通过javascript创建的coldfusion删除cookie或反之亦然?
【发布时间】:2015-02-18 13:26:50
【问题描述】:

我正在通过代码使用 javascript 创建一个 cookie

document.cookie="USERNAME=xyz";

之后我尝试通过代码使用coldfusion删除相同的cookie

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

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

如果 cookie 是由 Coldfusion 创建并尝试通过 javascript 删除它,也会发生同样的情况。 使用coldfusion我能够获取cookie值或更改由javascript创建但无法删除该cookie的cookie的cookie值。

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

<cfset coookie.USERNAME = 0> 

是否有任何理由或任何方式删除?

【问题讨论】:

  • 您是否在设置或删除路径时尝试指定路径? cookie 可能与您调用操作时所想的路径不同。
  • @NikosMargaritis ...路径和域相同,但仍然无法正常工作
  • @Jarede...stackoverflow.com/questions/19593145/… 中提到的问题我已经完成了那里提到的解决方案,并且我运行相同的代码来删除 cookie 但它仍然无法删除 cookie 这有什么原因吗除了我提到要删除的coldfusion代码之外,删除cookie的行为或任何替代方法。 ()
  • 检查 Firebug 中的属性并确保 cfcookie 属性匹配。例如,如果您在yourserver.com/test/test.cfm 上设置cookie,请使用&lt;cfcookie domain="yourserver.com" path="/test/" ....&gt;

标签: javascript jquery cookies coldfusion


【解决方案1】:

我自己只是在为此苦苦挣扎。对我来说,这是一个preservecase 问题。默认情况下,使用&lt;cfcookie&gt; 标签设置cookie 时,ColdFusion 将cookie 设置为全大写条目。因此,当您使用 &lt;cfcookie&gt; 删除它时,它会按预期删除,因为删除也在寻找全大写的 cookie。

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

当你去删除cookie时,一定要在&lt;cfcookie&gt;标签上使用preservecase=true属性。

编辑:再次阅读您的问题后,我注意到您的大小写似乎是正确的。但是,这是您肯定要仔细检查的内容(根据我的经验),以及其他 cookie 属性(路径、域等)。

【讨论】:

  • 哇,非常感谢...这真的很有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-14
  • 2013-08-16
  • 1970-01-01
  • 1970-01-01
  • 2017-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多