2014-12-19 110 views
0

我使用CakePHP v 2.5.X ......CakePHP的:_serialize不產生JSON響應

我想寫一個控制器動作可以與和HTML視圖或JSON迴應。出於某種原因,無論我嘗試什麼,響應都是HTML頁面,而不是標記。

這是我routes.php

Router::parseExtensions('json'); 

這是我的控制器操作:

public function login() { 
    $this->set('foo', 'bar'); 
    $this->set('_serialize', array('foo')); 
} 

這將返回的/users/login查看HTML ...不是一個JSON響應。

這是非常令人困惑的,因爲我有一個不同的行爲,它可以很好地適用於.json擴展名。我錯過了什麼?

已解決!

感謝ndm指出我忘記在我的組件中包含RequestHandler

+0

你在哪裏包含請求處理程序組件?另外你怎麼調用這個動作(網址明智)? – ndm 2014-12-19 01:24:20

+0

@ndm無處!!! Urggg ...非常感謝你!請提交答案,以便我可以接受。 – emersonthis 2014-12-19 01:28:16

回答

0

添加您的應用程序/配置/ routes.php文件...

Router::parseExtensions(); 

要記住一個重要的事情是,這塊上面的代碼必須在此行之前被定義

require CAKE . 'Config' . DS . 'routes.php'; 

然後去到您的控制器&添加RequestHandler組件。現在

public $components = array('RequestHandler'); 

/users/login會看起來像

enter image description here 就是這樣。