我正在设置一个 AJAX 系统,并且我有一个需要返回 JSON 数据的控制器。在到目前为止的示例中,所有控制器都以对视图的调用结束:
$this->renderc( 'interest', $data );
我想直接返回 JSON 以供 jQuery 使用,但下面的代码不能正常工作:
return json_encode($data);
因为返回是作为标题出现的,而不是 Firebug 中的内容。嘻嘻!
文档:
有时在 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访问它
以 JSON 格式输出数据(当然带有适当的内容类型标题)在控制器中使用它。
$this->toJSON($data, true);