无法在 symfony 中删除 cookie
Posted
技术标签:
【中文标题】无法在 symfony 中删除 cookie【英文标题】:Trouble deleting cookies within symfony 【发布时间】:2012-10-20 03:47:52 【问题描述】:我有一个使用 jquery 的 php 文件。如果在按下提交按钮后选中了一个复选框,我有这个文件存储 cookie,如果未选中该复选框,则删除 cookie(如果它们存在)。
它在我没有 symfony 的开发服务器上运行良好。当我将它传输到我们的实时服务器时,这需要我将代码放在 symfony 中,它会保存 cookie 但不会删除它们。我正在使用来自这里的 jquery.cookies.js LINK
我的代码很简单
// else delete the cookies if the checkbox is unchecked
else
?>
<script type="text/javascript">
$.removeCookie('vtuid');
$.removeCookie('vt_usr');
$.removeCookie('vt_pd');
$.removeCookie('vt_chk');
</script>
<?php
【问题讨论】:
【参考方案1】:你也可以这样做
$response = new Symfony\Component\HttpFoundation\Response();
$response->headers->clearCookie('nameOfTheCookie');
$response->send();
不要忘记按照 cookie 被删除的顺序发回响应
【讨论】:
【参考方案2】:在 Symfony 中设置 cookie 的完整文档在这里: http://symfony.com/doc/current/components/http_foundation/introduction.html#setting-cookies
API 文档中描述了清除 cookie: http://api.symfony.com/2.3/Symfony/Component/HttpFoundation/ResponseHeaderBag.html#method_clearCookie
【讨论】:
【参考方案3】:B 默认 symfony 只设置带有 http 标志的 cookie,这意味着 - 你不能从 js 中删除 cookie。 例如:
$response->headers->setCookie(new Cookie('blabla', 'true', time() + (3600 * 48), '/', null, false, false));
【讨论】:
好吧,我想是这样的。我所做的解决方法是将同名的 cookie 设置为空值,以便在会话结束后将它们删除。以上是关于无法在 symfony 中删除 cookie的主要内容,如果未能解决你的问题,请参考以下文章
无法删除名为默认连接的数据库`symfony-project`驱动程序中发生异常:SQLSTATE [HY000] [2002]连接被拒绝