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

使用 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 回答
0

我遇到了 XML 的这个问题

您必须在视图文件夹中为 json 创建一个文件夹(例如 View/Pages/json),然后在其中放置您的视图文件(例如 news.json)

然后,您可以在控制器方法结束之前执行此操作,以强制响应为 json。

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