1

AJAXシステムをセットアップしていて、JSONデータを返す必要があるコントローラーがあります。これまでの例では、すべてのコントローラーはビューの呼び出しで終了します。

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

jQueryで使用するためにストレートJSONを返したいのですが、以下のコードは正しく機能していません。

return json_encode($data);

これは、Firebugのコンテンツではなく、ヘッダーとして返されるためです。Heeeelp!

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 に答える