为了提供一个ajax操作,我执行以下操作:
public function preDispatch()
{
if ($this->getRequest()->isXmlHttpRequest()) {
Zend_Controller_Action_HelperBroker::removeHelper('viewRenderer');
Zend_Layout::getMvcInstance()->disableLayout();
}
}
但响应附带以下错误:在路径中找不到脚本"async/tax.phtml"(/var/www/app/trunc/application/views/scripts/:./views/scripts/(
为什么不使用 Ajaxcontext 操作助手? http://framework.zend.com/manual/en/zend.controller.actionhelpers.html#zend.controller.actionhelpers.contextswitch
// supposedly in your async controller
public function init() {
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->addActionContext('tax', 'html')
}
然后将视图命名为"async/tax.ajax.phtml",并确保 ajax 调用要求 html 格式。
这样,您甚至可以调整代码,以使用相同的控制器/操作自动响应 json、phtml 或 xml。
- 您是否检查过
/var/www/app/trunc/application/views/scripts/
中是否存在该文件tax.phtml
. - 如果存在,则
tax.phtml
文件底部的echo exit;
位置。