0
CakePlugin::routes();
Router::setExtensions('json');
Router::parseExtensions('json');

routes.php では、まだデバッグすると、応答で「html」が返されます。

debug($this->RequestHandler->responseType());

私を助けてください。

これはコンソールに表示されるエラーです --->

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /cities/index.json was not found on this server.</p>
</body></html>
4

2 に答える 2

0

XMLでこの問題が発生しました

json 用のビュー フォルダー (View/Pages/json など) にフォルダーを作成し、そこにビュー ファイル (news.json など) を配置する必要があります。

次に、コントローラー メソッドの終了前にこれを実行して、応答を強制的に json にすることができます。

 $this->RequestHandler->respondAs('json');
于 2013-09-18T11:52:51.560 に答える
0

json/xml/csv などを操作するときの最もクリーンな方法は、実際に拡張機能を使用してアクションにアクセスすることです。意味:

/controller/action

このアクションの HTML バージョンを提供したくない場合は、404 にする必要があります。

メソッドには次のようにアクセスする必要があります。

/controller/action.xml
/controller/action.json

このようにして、何が期待できるかが明確になるだけでなく、すべての Cake マジックを呼び出して、RequestHandler に Xml または Json ビュー クラスを設定させ、適切なヘッダーで応答させるなど、すべてすぐに使用できます。このようにして、追加のオーバーヘッドなしで複数の異なる形式をサポートすることもできます。

また、クエリ文字列を簡単に設定できます。

/controller/action.json?foo=bar

フレームワークと戦わないでください:)

于 2013-09-18T12:25:37.257 に答える