我有一個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'已啓用。 –