Cakephp响应标头

时间:2015-08-19 11:09:21

标签: php apache cakephp

我正在尝试在CakePHP 3应用程序中访问Apache响应头。

apache_response_headers()headers_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
)

当我检查来自浏览器的响应标题时,另外我看到这些值:“content-encoding,content-length,content-type,date,ms-author-via,server,status,vary,via,x-original-内容长度,x-powered-by“。 Cakephp的响应对象是否具有get all header方法? https://github.com/cakephp/cakephp/blob/3.0.11/src/Network/Response.php

如何获取所有响应标头?

2 个答案:

答案 0 :(得分:1)

如果在使用vanilla PHP命令时没有信息,那么Cake将无法做得更好。

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

答案 1 :(得分:1)

你试过这个功能吗?

$this->response->header()

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