3

我有一个使用 jquery 的 php 文件。如果在按下提交按钮后选中了一个复选框,我有这个文件存储 cookie,如果未选中该复选框,则删除 cookie(如果它们存在)。

它在我没有 symfony 的开发服务器上运行良好。当我将它传输到我们的实时服务器时,这需要我将代码放在 symfony 中,它会保存 cookie 但不会删除它们。我正在使用来自这里的 jquery.cookies.js链接

我的代码很简单

                   // 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
                    }
4

3 回答 3

30

你也可以做

 $response = new Symfony\Component\HttpFoundation\Response();
 $response->headers->clearCookie('nameOfTheCookie');
 $response->send();

不要忘记按照 cookie 被删除的顺序发回响应

于 2013-10-17T13:02:43.903 回答
3

B 默认 symfony 只设置带有 http 标志的 cookie,这意味着 - 你不能从 js 中删除 cookie。例如:

$response->headers->setCookie(new Cookie('blabla', 'true', time() + (3600 * 48), '/', null, false, false));
于 2012-10-30T18:38:49.540 回答
1

在 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

于 2013-10-28T13:46:09.797 回答