在 CakePHP 3.4 中输出自定义 HTTP 正文内容:避免“无法发出标头”错误
CakePHP 控制器中禁止回显响应,因为它可能会导致各种问题,包括“无法发出标头”错误。
为什么会发生错误
CakePHP 3.4 在回显之前引入了对发送标头的显式检查回复。直接回显数据违反了此策略,从而触发错误。
输出自定义 HTTP 内容的正确方法
推荐的方法有两种:
1。配置响应对象
<code class="php">$content = json_encode(['method' => __METHOD__, 'class' => get_called_class()]); $this->response = $this->response ->withStringBody($content) ->withType('json'); return $this->response;</code>
2.使用序列化视图
<code class="php">$content = ['method' => __METHOD__, 'class' => get_called_class()]; $this->set('content', $content); $this->set('_serialize', 'content');</code>
此方法需要启用请求处理和正确的请求配置(例如,在 URL 中使用“.json”或设置 Accept 标头)。
结论
遵守这些实践可确保正确处理 HTTP 响应并防止与直接回显响应数据相关的错误。
以上是以下是一些标题选项,结合了问题格式和文章重点: **关注问题:** * **CakePHP 3.4:为什么在回显 Resp 时出现'无法发出标头”错误的详细内容。更多信息请关注PHP中文网其他相关文章!