簡體   English   中英

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

[英]Where do I put $this->request->headers('Content-Type', 'application/json');

我正在嘗試將內容類型更改為Kohana中的application / json。 我把它放在我的控制器中的一個動作中:

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

但是,請求仍然是text / html內容類型。

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

要詳細說明Claudio的答案,是的,你需要設置響應頭,而不是請求,就像這樣

$this->response->headers('Content-Type','application/json');

另外,我不確定你是如何實現控制器的,但看起來它可能是基於的模板控制器

$this->content = json_encode($json_data);

如果您使用的是模板控制器,請確保將auto_render設置為FALSE。

最后,使用您的json數據設置響應正文

$this->response->body(json_encode($json_data));

OP問到哪里放。 如果您正在使用擴展Controller_Template的控制器,就像我一樣,我只是將Andrew Schmid的代碼示例添加到我的基本控制器的after()方法(在parent :: after()之前)並且它工作得很好。

所以:

Controller_Your_Controller extends Controller_Template {

   // Your controller actions

   public function after()
   {
       // Set the response content-type here
       $this->response->headers('Content-Type','application/json');
       parent::after();
   }
}

那么,您需要編輯響應標頭。

http://kohanaframework.org/3.1/guide/api/Response#headers

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM