【发布时间】:2015-09-29 23:22:00
【问题描述】:
我有一个 PHP 应用程序,我有条件地设置 Access-Control-Allow-Origin 标头。我看到更改反映在我的本地设置和开发环境中,但在实时站点上,标头设置为其他内容。我设置的其他标头保留了它们的值,所以它让我相信 Access-Control-Allow-Origin 标头正在其他地方被覆盖。
我已经检查了我的项目中的 .htaccess 文件和 apache 虚拟主机配置文件,以了解可能会覆盖标头的位置。它是在虚拟主机配置文件中设置的,但我将其注释掉并重新启动了 apache,但标题仍然被覆盖。
还有其他地方可以检查标题是否被覆盖?
提前感谢您的帮助!
这里是请求的 PHP 代码 sn-p:
$origin=$front->getRequest()->getHeader('Origin');
if($origin && (preg_match('/http[s]{0,1}:\/\/' . $front->getRequest()->getHttpHost() . '$/', $origin))){
$front->getResponse()->setHeader('Access-Control-Allow-Origin', $origin);
$front->getResponse()->setHeader('Access-Control-Allow-Credentials', 'true');
}else{
//leave current value if there is no match
$front->getResponse()->setHeader('Access-Control-Allow-Origin', '*');
}
我很确定标题正在被其他东西覆盖,因为我可以看到 Access-Control-Allow-Credentials:true 按预期通过,但 Access-Control-Allow-Origin 的值为 *。
【问题讨论】:
标签: php apache .htaccess http-headers