3

我尝试加载ajax布局,但每次都是正在加载的默认布局。

public function getByZone() {
        $this->layout = 'ajax';    
        ...
    }

所以我的组合框包含我所有的default.ctp而不是我的“ajax 答案”

我尝试了很多解决方案,在网上找到但没有任何效果。

禁用布局$this->layout = false, $this->render('my_view_name', false), $this->autoRender = false,

看看我的AppController中是否没有beforeRender,...

如果您有任何解决方案,非常感谢您的帮助。

4

5 回答 5

1

添加$this->autoRender = false;

于 2013-12-07T22:37:44.653 回答
0

我有 Cakephp 2.0 并升级到 2.4,当我遇到这个问题时,我很确定我有同样的问题。我最终改变了

$this->render('ajax', 'success');

$this->render('/Layouts/ajax', 'ajax');

但这还不是全部!此外,也许只是因为我做事的一些笨拙的方式,我改变了

$this->request->params['url']

$this->request->query

即我在这个 url http://myurl.com/controller/action?bozopants=1中的 http 参数 bozopants 现在在控制器中被寻址为 $this->request->query['bozopants']

当然,这发生在具有相当严格 Auth 限制的控制器中。

于 2013-12-07T18:41:17.623 回答
0

在 CakePHP 2.5.4 中,我只是使用以下几行来仅呈现 JSON 输出:

   $this->set("data", $myData);
// $this->render(string $view, string $layout);
   $this->render(false, "ajax"); // Not using a view, only using a layout "ajax".

在“ajax”布局中,变量 $data 将作为 viewVariable 使用。

于 2014-09-29T12:45:48.730 回答
0

首先尝试在浏览器中使用常规 URL。这将告诉您它是您的 ajax 调用还是您的代码中的某些内容。通常我会尝试简化事情,这样我就可以减少导致问题的事情。

于 2013-10-25T02:30:51.330 回答
0

页面可能有重定向,请确保您可以访问“getByZone”功能,或者是否需要登录APP

于 2014-01-23T05:06:06.277 回答