【问题标题】:Cakephp response headersCakephp 响应标头
【发布时间】:2015-11-12 15:40:49
【问题描述】:

我正在尝试在我们的 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 headers 方法吗? https://github.com/cakephp/cakephp/blob/3.0.11/src/Network/Response.php

如何获取所有响应标头?

【问题讨论】:

    标签: php apache cakephp


    【解决方案1】:

    如果在使用普通 PHP 命令时信息不存在,Cake 将无法做得更好。

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

    【讨论】:

      【解决方案2】:

      你试过这个功能吗?

      $this->response->header()

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

      【讨论】:

      • 在 CakePHP 3.5+ 中,use$this->response = $this->response->withHeader('X-something', 'a value')
      猜你喜欢
      • 1970-01-01
      • 2016-05-06
      • 2017-03-05
      • 2017-01-05
      • 2011-12-14
      • 2018-05-06
      • 2023-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多