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>
答案 0 :(得分:0)
我遇到了XML的这个问题
您必须在视图文件夹中为json创建一个文件夹(例如View / Pages / json)并在那里放置您的视图文件(例如news.json)
然后,您可以在控制器方法结束之前执行此操作,以强制响应为json。
$this->RequestHandler->respondAs('json');
答案 1 :(得分:0)
使用json / xml / csv等时最简洁的方法是,实际使用扩展来访问操作。 含义:
/controller/action
如果您不想提供此操作的HTML版本,则应为404。
您的方法应该像这样访问:
/controller/action.xml
/controller/action.json
这样,它不仅清楚了解人们可以期待什么,还可以调用所有Cake魔法,让RequestHandler设置Xml或Json视图类,使用适当的标题响应等。一切都开箱即用。 您也可以通过这种方式支持多种不同的格式,而无需任何额外开销。
此外,您可以轻松设置查询字符串:
/controller/action.json?foo=bar
不要与框架作斗争:))