我看到的例子暗示了这样的用法:
$response = new Response();
echo $response->body($view)->send_headers()->body();
但如果我有以下代码
$response = new Response();
$response->headers('Content-Type', 'application/json');
echo $response->body($view)->send_headers()->body();
它输出的输出是正确的,但它是HTML格式,而不是JSON。
那么发送新响应以及标题的有效方法是什么?我正在使用Kohana 3.1和php 5.3
编辑:
在你开始考虑我不使用$this->response->body(<blah here>);
的傻瓜之前,让我澄清一下我知道如何使用控制器的响应对象......这不是我想要的......我想要的完全从函数调用堆栈中控制器附近的静态函数发送响应:)
答案 0 :(得分:1)
对Kohana来说还是新手,但这就是我如何做到的,似乎工作正常:
$this->response->headers('Content-type','application/json; charset='.Kohana::$charset);
$this->response->body(json_encode( $data_array ));
我认为charset是可选的......希望这有帮助。
答案 1 :(得分:0)
好的,在抓了我的脑袋并尝试了许多解决方案后,我决定使用它:
Request::initial()->response()
->body($view)
->headers('Content-type','application/json');
除非您在流程中的某处写exit
,否则可以在任何地方使用。