Ajax CakePHP JsHelper-获取响应并在视图中打印

Ajax CakePHP JsHelper-获取响应并在视图中打印,ajax,json,cakephp,Ajax,Json,Cakephp,我很难找到如何从位于视图中控制器中的以下代码获得响应: if ($this->request->isAjax()){ Configure::write ( 'debug', 0 ); $this->autoRender = 0; $this->layout = 'ajax'; $results = "My Data"; echo json_encode($results); }

我很难找到如何从位于视图中控制器中的以下代码获得响应:

   if ($this->request->isAjax()){
        Configure::write ( 'debug', 0 );
        $this->autoRender = 0;
        $this->layout = 'ajax';
        $results = "My Data";
        echo json_encode($results);
    }

    //tried doing this and it doesn't work
    $this->set('results',$results);

我只想在视图中访问$results变量中的数据

如果这是您的整个方法,那么在视图中不显示任何内容是合乎逻辑的。由于您已使用以下选项禁用自动渲染:

$this->autoRender = 0;
您需要在某个时间点手动渲染视图,使用:

$this->render('view');
其中
view
是要渲染的视图的实际名称。否则,您将得到一个空白页


还要注意的是,您在
isAjax()
检查中设置了
$results
,但您将其设置为该检查之外的视图,因此如果是“常规”调用(非ajax),您将得到一个未定义的变量错误是对控制器操作执行的。

使请求看起来像什么样的视图代码?$autoRender通常是布尔值,而不是int。但这不重要。。我将autoRender设置为false,因为我不想渲染任何东西,我只想存储ajax响应返回的数据,然后将其发送回视图。另外,我正在做$this->set();在isAjax()检查中,上面只是一个示例代码。直到我开始使用JsHelper,我才遇到这个问题。@Walter听起来你在寻找一个
$this->Js->request
。看看这个。