如何获取请求处理程序响应type ='json in cakephp?'

时间:2013-06-23 12:36:15

标签: cakephp

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>

2 个答案:

答案 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

不要与框架作斗争:))