我正在尝试在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
如何获取所有响应标头?
答案 0 :(得分:1)
如果在使用vanilla PHP命令时没有信息,那么Cake将无法做得更好。
我认为您的问题在于output_buffering
中启用了php.ini
。这将导致响应延迟,直到脚本退出,并且您显然在运行时期间不会在PHP中拥有完整的响应头。在检查标题之前,您可以关闭输出缓冲或刷新输出。
答案 1 :(得分:1)
你试过这个功能吗?
$this->response->header()
此功能允许您设置标题,它将始终返回您定义的标题列表。 即使你没有给这个函数赋值,它也只会返回标题列表。