2012-04-24 105 views
0

我正在使用cakephp 2.1.1cakephp REST api響應不是json,它的完整html頁面

從我在Doc中讀到的內容中,它可以讓你很容易地創建REST API。 (http://book.cakephp.org/2.0/en/development/rest.html)

我不能弄清楚如何生成JSON響應,我從目標c調用api,響應是完整的HTML頁面。

我有這樣的代碼在我的控制器

public function add() { 
     if ($this->request->is('post')) { 
      if ($this->Post->save($this->request->data)) { 
       $message = 'Saved'; 
       //echo 'eyeys'; 

      } else { 
       $message = 'Error'; 
      } 

      $this->set('_serialize',$message); 
     } 
    } 
+0

另外,我所做的,使REST在cakephp 2.1.1在routes.phpRouter :: mapResources('posts'); Router :: parseExtensions(); – 2012-04-24 21:19:25

+0

您必須解析json擴展:'Router :: parseExtensions('json')',那麼所有以'.json'結尾的請求都會自動設置響應類型。 – jeremyharris 2012-04-25 15:18:10

回答

1

嘗試設置響應類型

public function add() { 
    $this->autoRender = false; 
    $this->response->type('json'); 
    $message = null; 
     if ($this->request->is('post')) { 
      if ($this->Post->save($this->request->data)) { 
       $message = 'Saved'; 
      } else { 
       $message = 'Error'; 
      } 
     }   
    return json_encode($message);  
} 

還檢查了官方CakePHP的2.0 response documentation

+2

注意:如果你使用'Router :: parseExtensions('json')解析擴展名,你不需要設置類型,它將自動爲擴展名爲.json的所有請求設置。 – jeremyharris 2012-04-25 15:19:05

相關問題