3

我试图在渲染树枝文件之前在控制器中设置一个 cookie。在尝试了我在这里看到的一些建议后,我的代码如下所示:

public function demandAction() {

    $result = array('message' => '');
    $response = $this->render('MainBundle:Default:demand.html.twig', $result);        
    $response->headers->setCookie(new Cookie('cookie', 'value', time() + 3600 * 24 * 7));

    return $response;
}

但是当我提醒 document.cookie 时,cookie 在我呈现的页面中不可用。我确定我一定错过了什么。请帮帮我。谢谢。

4

1 回答 1

3

cookie 对象的 httpOnly 默认设置为 true,http: //api.symfony.com/2.0/Symfony/Component/HttpFoundation/Cookie.html

这意味着浏览器不应使 cookie 对客户端脚本可见。如果您需要在脚本中查看 cookie,您可以在创建 cookie 时将第 7 个参数作为 false 传递。

$response->headers->setCookie(new Cookie('foo', 'bar',time() + 60, '/', null, false, false));

如果您只需要查看 cookie 以进行调试,您可以使用 Chrome 开发工具。它们位于“资源”选项卡下。

于 2013-04-14T06:34:09.553 回答