Coldfusion StructDelete创建空白值

时间:2011-12-14 16:55:54

标签: cookies coldfusion coldfusion-9

我正在使用Codlfusion 9的StructDelete()方法从cookie中删除一个值。但使用后

StructDelete(cookie,"selector12")

我为 cookie.selector12 获取 [空字符串] 的值,尽管删除

这是我正在使用的代码:

<cfdump var="#cookie#">
<!--- kill any existing selector cookie when looking at a profile --->
<cfset structDelete(cookie,'selector#URL.clk#')>
<cfdump var="selector#URL.clk#">
<cfdump var="#cookie#">

提供以下输出:

Screen shot of cookie cfdumps

StructDelete实际上只是设置了空值吗?或者我错过了一些明显而简单的东西......再次

1 个答案:

答案 0 :(得分:8)

当应用于COOKIE结构时,StructDelete()的行为会将以下标题推送到浏览器:

Set-Cookie SELECTOR12=;expires=Wed, 14-Dec-2011 10:06:02 GMT;path=/

反过来(在该请求的剩余生命周期内)会生成一个带有空值的浏览器cookie - 这模仿了你在COOKIE结构上调用cfdump时所看到的行为。

这只是处理COOKIE结构的副作用,实际上,它结合了对浏览器cookie的访问 - 因此受限于在Web浏览器中定义/管理cookie的方式。