我正在尝试在访问某个页面时删除客户端cookie。我该怎么做?即使使用下面的代码,我也无法删除客户端cookie:
<cfcookie name="GIFT CAT" value="" expires="NOW" />
<cfset StructDelete(cookie, 'GIFTCAT', false)>
答案 0 :(得分:2)
您需要确保所有属性与设置的Cookie相同。如此安全,领域和路径。
<cfcookie name="test1" value="1" domain="test.com" />
<cfcookie name="test1" value="" expires="now" />
不起作用,但
<cfcookie name="test1" value="1" domain="test.com" />
<cfcookie name="test1" value="" domain="test.com" expires="now" />
确实有效。
答案 1 :(得分:2)
(扩展自评论)
听起来您正在错误地测试Cookie状态。您无法在单个http请求中执行此操作。必须将http响应发送回浏览器才能实际删除客户端cookie。该更改将反映在 next http请求中。
当我保留转储以查看结果显示空字符串
时
另外,如果您查看ColdFusion文档,它会指出expire="now"
不会从活动页面的Cookie范围中删除相应的变量。因此,如果删除cookie,然后将cookie
范围转储到同一页面,则删除的cookie仍然存在。在您的情况下,value
将是一个空字符串。
正确测试行为需要三个请求:
创建Cookie:
<cfcookie name="GIFT_CAT" value="Created cookie at #now()#"/>
。在浏览器中运行脚本后,“GIFT_CAT”:
cookie
范围删除Cookie:<cfcookie name="GIFT_CAT" value="" expires="NOW" />
。在浏览器中运行脚本后,“GIFT_CAT”:
cookie
范围内(因为expire
未在活动页面上删除它)最后,验证Cookie:<cfdump var="#COOKIE#">
。在浏览器中运行脚本后,“GIFT_CAT”:
cookie
范围