问题描述
我刚刚将ajax调用转换为返回json而不是HTML。
如果我
为什么蛋糕的处理方式不同?
为什么要在模板路径中添加额外的/ json?
code: 500
file: "Forms/json/json/get_more.ctp"
line: 1092
message: "Template file "Forms/json/json/get_more.ctp" is missing."
url: "/forms/getMore/60498/0/6?_=1599996955252"
在URL中添加.json没有区别。
我已经添加到routes.PHP
$routes->extensions(['json','xml','html']);
我需要使用模板才能使我的助手处理一些数据,所以我有$this->set('_serialize',false);
解决方法
确保您已在routes.php中添加了代码
$routes->extensions(['json']);
函数内部
Router::scope('/',function (RouteBuilder $routes) {
现在,在控制器中,假设$ responseArray是您要在json中获得的响应,则必须在操作结束时编写以下行。
$this->set('responseRoot',$responseArray);
$this->set('_serialize',array('responseRoot'));
删除ctp文件,.json类型请求不需要它们,除非您想要特定的格式类型。