我已经用Symfony 2和fos REST bundle实现了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标头?如果可以,如何保留?
发布于 2015-02-13 23:22:37
我明白了,HTTP缓存也在缓存头部。如果我在从sub2.domain.com访问之前直接访问我的API,它将不会被允许,因为响应没有通过Access-Control-Allow-Origin头部缓存(NelmioCors根据您访问应用程序的位置动态设置它)。
https://stackoverflow.com/questions/28502503
复制相似问题