3

小枝ファイルをレンダリングする前に、コントローラーにクッキーを設定しようとしています。ここで見たいくつかの提案を試した後、私のコードは次のようになります。

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 に答える