1

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

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

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

return json_encode($data);

因为返回是作为标题出现的,而不是 Firebug 中的内容。嘻嘻!

4

2 回答 2

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访问它

于 2011-04-24T17:55:19.770 回答
0

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

于 2011-04-26T17:32:19.457 回答