【发布时间】:2015-11-11 17:21:08
【问题描述】:
我一直在尝试在 Cakephp 3.0.11 中设置 Ajax 调用。 我已经按照这里的解释:http://book.cakephp.org/3.0/en/views/json-and-xml-views.html
在路由中启用了 Json(但我不确定这是否有用):
$routes->extensions(['json', 'xml', 'html']);
我已经在控制器中设置了我的示例:
$returnObject = new ObjectReturn();
$this->set('returnObject', $returnObject);
$this->set('_serialize', ['returnObject']);
但是当我进行 ajax 调用时,我得到了:
{
"message": "Template file \Pages\\score.ctp\ is missing.",
"url": "\/pages\/score",
"code": 500
}
如果我创建页面,他会为我呈现一些 html,并使用 default.ctp 作为布局。这里有什么问题?
非常感谢!
【问题讨论】:
-
您是否按照here 的说明在控制器中加载了
RequestHandlerComponent? -
顺便说一句,要启用
json使用扩展和请求处理的视图,您的网址需要使用.json扩展,例如/pages/score.json。 -
您好,感谢您的回答。我已经升级到 Cake 的最新版本,现在它可以工作了。也许一个错误是正确的。谢谢你的回答!
-
这在您升级时有效,原因如下:
As of 3.1.0 AppController, in the application skeleton automatically adds '_serialize' => true to all XML/JSON requests. You will need to remove this code from the beforeRender callback if you want to use view files.from book.cakephp.org/3.0/en/views/…