【发布时间】:2014-02-18 19:19:37
【问题描述】:
我的路由文件中有这个:
CakePlugin::routes();
Router::mapResources('api');
Router::parseExtensions('json');
目前,如果我调用控制器,只要它是 HTTP GET(而不是发布),它就会输出带有 .json 作为扩展名的 Api,无论方法/函数名称如何,只要它存在于我的API 控制器。
如果我发帖,虽然我可以对发布的 JSON 进行解码,但无论我调用什么函数/方法,它都会错误提示我在 app/Api/Views/json/ 中缺少 xxx.ctp xxx.ctp = 我调用发布的任何函数的名称。
2 个问题/问题。
理想情况下,我想将任何对 Api 控制器的请求解析为 json,但不必在 url 中指定 .json 扩展名。
其次,HTTP POST 如何/为什么不能像 HTTP GET 那样输出 json,我是否需要在其他地方映射一些东西?
非常感谢
【问题讨论】:
-
你的期望是有缺陷的。输出应始终对应于文件类型/扩展名。因此,对于 JSON 响应,您始终需要 json 扩展。如果您使用 xml,您将获得 XML,如果您不使用扩展名,您将获得 HTTP。这就是它应该如何工作的。不是你所期望的。见AJAX and CakePHP。如果您只想要 JSON,请确保所有其他错误 (4xx) 正确。
标签: cakephp cakephp-2.4