Coldfusion StructDelete创建空白值

Pet*_*ete 3 cookies coldfusion coldfusion-9

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

StructDelete(cookie,"selector12")
Run Code Online (Sandbox Code Playgroud)

我为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#">
Run Code Online (Sandbox Code Playgroud)

要提供以下输出:

屏幕截图的饼干cfdumps

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

Sha*_*mes 8

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

Set-Cookie SELECTOR12=;expires=Wed, 14-Dec-2011 10:06:02 GMT;path=/
Run Code Online (Sandbox Code Playgroud)

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

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

  • 有助于使用`<cfcookie name ="selector#URL.clk#"expires ="now">`而不是`structDelete`? (2认同)