Coldfusion StructDelete создает пустое значение - PullRequest
3 голосов
/ 14 декабря 2011

Я использую метод StructDelete () в Codlfusion 9, чтобы удалить значение из файла cookie. Но после использования

StructDelete(cookie,"selector12")

Я получаю значение [пустая строка] для cookie.selector12 несмотря на удаление it

Это код, который я использую:

<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 Ответ

8 голосов
/ 14 декабря 2011

Поведение StructDelete () при применении к структуре COOKIE помещает в ваш браузер следующий заголовок:

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

, который, в свою очередь, (на оставшуюся часть срока действия этого запроса) создаст браузерcookie с пустым значением - имитирует поведение, которое вы видите при вызове cfdump для этой структуры COOKIE.

Это просто побочный эффект от работы со структурой COOKIE, которая в действительности ограничивает доступ кфайлы cookie вашего браузера - и поэтому ограничены тем, как файлы cookie определяются / управляются в веб-браузерах.

...