如果您可以提供更多有关您所呼吁的“阻止页面”的信息,可能会更容易辨别问题.默认情况下,Magento包括< default>所有页面的布局标签,即使在AJAX调用中也能为您提供页眉和页脚.
原文链接:https://www.f2er.com/ajax/160127.html要发送一个没有额外的页面,你有几个选择.首先,您可以简单地自己设置输出,避免布局系统完全. Magento为单页结帐功能执行此操作:
$result = array( 'foo' => 'foo','bar' => 'bar',); $this->getResponse()->setBody(Zend_Json::encode($result));
protected function loadPage() { $layout = $this->getLayout(); $update = $layout->getUpdate(); $update->load('your_custom_handle'); $layout->generateXml(); $layout->generateBlocks(); $output = $layout->getOutput(); $result = array( 'outputHtml' => $output,'otherVar' => 'foo',); $this->getResponse()->setBody(Zend_Json::encode($result)); }
在你的布局文件中:
<your_custom_handle> <remove name="right"/> <remove name="left"/> <block type="module/block" name="root" output="toHtml" template="module/template.phtml"/> </your_custom_handle>
第二个选项,如果要使用布局,则是定义备用的默认布局.当你调用$this-> loadLayout();在Magento控制器中,您可以实际指定< default>以外的句柄.从下降. Magento产品控制器的一个例子是:
$this->loadLayout('popup');
该布局默认在main.xml布局文件中定义,并呈现popup.phtml模板,可能适合您使用.
如果你还是有麻烦的话,让我知道,我们可以尝试其他的事情.希望有帮助.
谢谢,乔