symfony2 http缓存失去自定义响应头

时间:2015-02-13 15:06:14

标签: rest symfony caching http-headers cors

我已经使用Symfony 2和fos REST包实现了一个REST API。我还使用nelmio CORS包来管理响应中的CORS头。

一切正常。

现在,我已经在我的一个REST API端点上实现了HTTP caching(数据库中很少更改的实体集合)。

HTTP缓存工作正常但是这个REST端点的响应上的CORS头都丢失了,即使我尝试手动设置它们:

$response = $this->handleView($this->view($ret, 200));

$response->setPublic();
$response->setMaxAge(21600);
$response->setSharedMaxAge(21600);
$response->headers->addCacheControlDirective('must-revalidate', true);
$response->headers->set('Access-Control-Allow-Origin', '*');

return $response;

使用HTTP缓存时是否可以保留CORS标头,如果是,如何?

1 个答案:

答案 0 :(得分:0)

我明白了,HTTP缓存也在缓存标题。如果我在从sub2.domain.com访问之前直接访问我的API,则不允许使用它,因为响应未使用Access-Control-Allow-Origin标头缓存(NelmioCors根据您访问的位置动态设置它)应用程序)。