我有一个PHP应用程序,我有条件地设置Access-Control-Allow-Origin标题。我看到改变反映在我的本地设置和开发环境上,但在现场,头部被设置为别的东西。我设置的其他头文件保持它们的值,所以它使我相信Access-Control-Allow-Origin头被其他地方覆盖。正在覆盖HTTP响应标题。哪里可以在Apache中设置HTTP响应头?
我检查了我项目中的.htaccess文件和Apache虚拟主机配置文件,可能会覆盖标头。它是在虚拟主机配置文件中设置的,但是我将其注释掉并重新启动了apache,但是头仍被覆盖。
有没有其他地方可以检查头部是否被覆盖?
在此先感谢您的帮助!
这里是要求PHP代码片段:
$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
有*
值。
我想标题设置为http://example.com或https://example.com,让我的安全和不安全的页面之间的AJAX请求CORS。我想我需要在PHP中这样做,但是有一件事是覆盖我在PHP中设置的头文件,但是我找不到在哪里。 – Shilpam
请给我看你的PHP代码。请确保apache'mod_headers'已启用。 –