我正在建立一个AJAX系统,我有一个控制器,我需要返回JSON数据。在目前为止的示例中,所有控制器都以对视图的调用结束:
$this->renderc( 'interest', $data );
我想直接返回JSON以便与jQuery一起使用,但下面的代码不能正常工作:
return json_encode($data);
因为返回来自标题,而不是Firebug中的内容。 Heeeelp!
答案 0 :(得分:2)
有时候在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);