我正在使用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#">
提供以下输出:
StructDelete实际上只是设置了空值吗?或者我错过了一些明显而简单的东西......再次
答案 0 :(得分:8)
当应用于COOKIE结构时,StructDelete()的行为会将以下标题推送到浏览器:
Set-Cookie SELECTOR12=;expires=Wed, 14-Dec-2011 10:06:02 GMT;path=/
反过来(在该请求的剩余生命周期内)会生成一个带有空值的浏览器cookie - 这模仿了你在COOKIE结构上调用cfdump时所看到的行为。
这只是处理COOKIE结构的副作用,实际上,它结合了对浏览器cookie的访问 - 因此受限于在Web浏览器中定义/管理cookie的方式。