我这样做:
domain.com/route-name/?do-something=1
Run Code Online (Sandbox Code Playgroud)
..which设置一个cookie,然后使用302重定向重定向到这个:
domain.com/route-name/
Run Code Online (Sandbox Code Playgroud)
它允许在不管页面查看的情况下进行操作(cookie存储用户的设置).
我使用默认的Symfony2反向代理缓存,一切都很好,但我需要阻止上述请求缓存.
我正在使用它来执行重定向:
// $event being a listener, usually a request listener
$response = new RedirectResponse($url, 302);
$this->event->setResponse($response);
Run Code Online (Sandbox Code Playgroud)
我尝试过这样的事情,但似乎没有任何效果:
$response->setCache(array('max_age' => 0));
header("Cache-Control: no-cache");
Run Code Online (Sandbox Code Playgroud)
那么如何阻止它缓存这些页面呢?
Nic*_*ich 10
您必须确保使用RedirectResponse发送以下标头(如果设置了GET参数)并且使用常规的路由响应:
Cache-Control: private, max-age=0, must-revalidate, no-store;
Run Code Online (Sandbox Code Playgroud)
实现你想要的东西:
$response->setPrivate();
$response->setMaxAge(0);
$response->setSharedMaxAge(0);
$response->headers->addCacheControlDirective('must-revalidate', true);
$response->headers->addCacheControlDirective('no-store', true);
Run Code Online (Sandbox Code Playgroud)
私人是重要的,并在昏迷的答案中失踪.
不同之处在于使用Cache-Control:private,您不允许代理缓存通过它们传输的数据.
| 归档时间: |
|
| 查看次数: |
5743 次 |
| 最近记录: |