如何在DooPHP控制器中返回JSON?

时间:2011-04-24 17:46:40

标签: php jquery ajax doophp

我正在建立一个AJAX系统,我有一个控制器,我需要返回JSON数据。在目前为止的示例中,所有控制器都以对视图的调用结束:

    $this->renderc( 'interest', $data );

我想直接返回JSON以便与jQuery一起使用,但下面的代码不能正常工作:

return json_encode($data);

因为返回来自标题,而不是Firebug中的内容。 Heeeelp!

2 个答案:

答案 0 :(得分:2)

Documentation

有时候在URL的末尾添加扩展名非常棒(非常适合REST api)。如果您需要这样做,只需在路线中添加扩展名:

$route['*']['/simple.rss'] = array('FeedController', 'getRss');
$route['*']['/simple.atom'] = array('FeedController', 'getAtom');

如果您想将其添加到带参数的路线中,则会有所不同:

$route['*']['/news/list/:id'] = array('FeedController',
                                      'listNews',
                                      'extension'=>'.json'
                                     );

//Or multiple extension names.
$route['*']['/news/list/:id'] = array('FeedController',
                                      'listNews',
                                      'extension'=>array('.json', '.xml')
                                     );

用户可以通过http://domain/news/list/168.json或168.xml

访问它

答案 1 :(得分:0)

以JSON格式输出数据(当然有适当的内容类型标题) 在控制器中使用它。 $this->toJSON($data, true);