无法从Cakephp 3控制器获取json响应

里卡多

我试图将一个ajax请求发送到Cakephp 3控制器。

控制器将从模型中找到数据,并将其返回到要显示的同一视图,

视图和js函数如下

<script type = "text/javascript" language = "javascript">
$(document).ready(function(){
    $("button").click(function(){
        $.ajax({
            type : "POST",
            url : "<?php echo $this->Url->build(['controller' => 'users', 'action' => 'getByCategories', '_ext' => 'json']); ?>",
            success: function (data){
                console.log(JSON.stringify(data));
            }
        });
    });
});</script>

上面的功能在控制器的索引视图中。

单击该按钮后,请求将被发送到同一控制器中的getByCategories函数。

getByCategories函数如下

public function getByCategories()
{
    $id = 33;
    $this->request->allowMethod(['ajax']);
    $this->autoRender = false;
    $cat = $this->Users->Categories->get($id);
    if ($this->Users->Categories->childCount($cat) > 0)
    {
        $result = $this->Users->Categories->find('all', ['conditions' => ['parent_id' => $id]]);
        $this->set(compact($result));
        $this->set('_serialize', $result);
    }
    else
    {
        $result['Machines'] = $this->Users->Machines->find('all', ['conditions' => ['category_id' => $id]]);
        $result['Medias'] = $this->Users->Medias->find('all', ['conditions' => ['category_id' => $id]]);
        $this->set(compact($result));
        $this->set('_serialize', $result);
    }
}

该函数的ajax响应始终为空,但调试工具正确显示了_serialize变量。

我已在routes.php文件中启用了json扩展。调试工具中this调用的变量如下

debugkit变量

如果有人可以指导从ajax响应中的debugkit中获取变量,我将不胜感激

先感谢您

格雷格·施密特(Greg Schmidt)

看起来你是密切,除了如何误会_serialize(也许无论是setcompact)的作品。请查看手册以获取所有详细信息,但是您应该在其中设置变量名称_serialize列表将所有内容序列化。true

另外,如果您使用compactwith ,则为set指定变量的名称,而不是变量本身。

因此,您应该在此处使用的内容可能是:

$this->set(compact('result'));
$this->set('_serialize', ['result']);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法从Cakephp 3控制器获取json响应

来自分类Dev

cakephp控制器出错,无法返回json响应

来自分类Dev

无法从控制器获取数据作为json

来自分类Dev

CakePHP控制器自定义功能无法识别

来自分类Dev

CakePHP 2.5.3无法在控制器中缓存特定操作

来自分类Dev

cakephp3-无法将表单数据发布到控制器功能

来自分类Dev

CakePHP 3:从控制器上传图像

来自分类Dev

控制器中的cakephp 3 url

来自分类Dev

cakephp 3控制器cakedc插件

来自分类Dev

无法在控制器中获取ID

来自分类Dev

无法在控制器中获取@EnvironmentObject

来自分类Dev

Angular控制器无法获取“ this”

来自分类Dev

无法将Grails控制器的JSON响应发送到jQuery数据表

来自分类Dev

无法在angular.js控制器中读取json响应属性

来自分类Dev

无法将Grails控制器的JSON响应发送到jQuery数据表

来自分类Dev

无法验证表单CakePHP 3

来自分类Dev

如何使用CakePHP在控制器中获取数据?

来自分类Dev

如何使用CakePHP在控制器中获取数据?

来自分类Dev

如何从cakephp中的控制器获取数据

来自分类Dev

无法通过jquery从控制器到jsp获得响应

来自分类Dev

无法访问控制器响应的正确内容

来自分类Dev

CakePHP3-反向(删除)生成(烘焙)的控制器

来自分类Dev

Cakephp 3默认模型未在控制器中加载

来自分类Dev

CakePHP 3控制器事件实现示例

来自分类Dev

cakephp 3 baseUrl已启用缺少的控制器

来自分类Dev

CakePHP 3控制器事件实现示例

来自分类Dev

无法从CakePHP控制器中的phpThumb生成缩略图生成缩略图

来自分类Dev

CakePHP 3 Debugkit.toolbar无法加载

来自分类Dev

CakePHP 3 Debugkit.toolbar无法加载