2012-04-24 61 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

相关问题