我在哪里放$ this-> request-> headers('Content-Type','application/json');

T.i*_*.i. 2 php json content-type kohana kohana-3

我正在尝试将内容类型更改为Kohana中的application/json.我把它放在我的控制器中的一个动作中:

$this->request->headers('Content-Type', 'application/json');
$this->content = json_encode($json_data);
Run Code Online (Sandbox Code Playgroud)

但是,请求仍然是text/html内容类型.

我应该在哪里放$this->request->headers('Content-Type', 'application/json');

小智 10

要详细说明Claudio的答案,是的,你需要设置响应头,而不是请求,就像这样

$this->response->headers('Content-Type','application/json');
Run Code Online (Sandbox Code Playgroud)

另外,我不确定你是如何实现控制器的,但看起来它可能是基于的模板控制器

$this->content = json_encode($json_data);
Run Code Online (Sandbox Code Playgroud)

如果您使用的是模板控制器,请确保将auto_render设置为FALSE.

最后,使用您的json数据设置响应正文

$this->response->body(json_encode($json_data));
Run Code Online (Sandbox Code Playgroud)