Cakephp响应头

Cakephp响应头,php,apache,cakephp,Php,Apache,Cakephp,我试图在我们的CakePHP3应用程序中访问Apache响应头 apache\u response\u headers()和headers\u list()提供以下数据: response headers:Array ( [Expires] => Thu, 19 Nov 1981 08:52:00 GMT [Cache-Control] => no-store, no-cache, must-revalidate, post-check=0, pre-check=0

我试图在我们的CakePHP3应用程序中访问Apache响应头

apache\u response\u headers()
headers\u list()
提供以下数据:

response headers:Array
(
    [Expires] => Thu, 19 Nov 1981 08:52:00 GMT
    [Cache-Control] => no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    [Pragma] => no-cache
)
headers list:Array
(
    [0] => Expires: Thu, 19 Nov 1981 08:52:00 GMT
    [1] => Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    [2] => Pragma: no-cache
)
当我从浏览器中检查响应标题时,我还看到了以下值:“内容编码、内容长度、内容类型、日期、ms author via、服务器、状态、变化、via、x-original-content-length、x-powered-by”。Cakephp的响应对象是否具有get all headers方法


如何获取所有响应标题?

如果在使用普通PHP命令时没有这些信息,Cake将无法做得更好


我相信您的问题在于在
php.ini
中启用了
输出缓冲。这将导致响应延迟,直到脚本退出,并且显然在运行时PHP中没有完整的响应头。您可以在检查标题之前关闭输出缓冲或刷新输出。

您尝试过此功能吗

$this->response->header()

此函数允许您设置标题,并始终返回定义的标题列表。 即使你没有给这个函数任何值,它也只会返回标题列表。

在CakePHP 3.5+中,
$this->response=$this->response->withHeader('X-something',a value')