Ajax Cakephp$布局不会更改

Ajax Cakephp$布局不会更改,ajax,cakephp,layout,controller,Ajax,Cakephp,Layout,Controller,因此,情况如下: 我有我的Debug .CTP和我的AJAX.CTP,其中我的Ajax .cTP只是空白的$CaltTyfFox布局;p> 当我进行自动完成ajax调用时,我必须将布局更改为“ajax”。 所以我的控制器中有这个函数 function beforeFilter() { if($this->RequestHandler->isAjax()) { $this->layout = 'ajax'; } }

因此,情况如下: 我有我的Debug .CTP和我的AJAX.CTP,其中我的Ajax .cTP只是空白的$CaltTyfFox布局;p> 当我进行自动完成ajax调用时,我必须将布局更改为“ajax”。 所以我的控制器中有这个函数

function beforeFilter() {
        if($this->RequestHandler->isAjax()) {
            $this->layout = 'ajax';
        }
    }
但是,当我查看自动完成的结果时,我会在选项中看到:

DOCTYPE html PUBLIC-//W3C//DTD XHTML1.0//ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd html-xmlns=http://www.w3.org/1999/xhtml> 这基本上是我的默认布局。 所以我猜布局没有改变


还有其他人遇到过这个问题吗?我忘了在控制器中添加一些东西了吗?所有帮助程序和组件都已就绪。

脚本中没有太多可能出错的地方。之前,过滤器是好的,设置视图模板也是好的。我能想到的唯一一件事是,您的ajax请求不知何故没有被识别

RequestHandler::isAjax的代码非常简单:

function isAjax() {
  return env('HTTP_X_REQUESTED_WITH') === "XMLHttpRequest";
}
所以我建议记录您的vars,看看它是否被识别为ajax。我还听说有时候缓存会把事情搞砸。尝试$this->disableCache;在检查它是否是ajax之前


调试。。。这不是很有趣吗

问题解决了,我的电影_autocomplete.ctp的名字中有一个大写字母,所以他正在搜索不存在的电影_auto_complete.ctp。当我发现…有关于缓存问题的消息来源吗?