2012-05-21 25 views
0

爲了提供一個Ajax動作我做到以下幾點:ZF:禁止動作助手視圖解析器

public function preDispatch() 
    { 
     if ($this->getRequest()->isXmlHttpRequest()) { 
       Zend_Controller_Action_HelperBroker::removeHelper('viewRenderer'); 
       Zend_Layout::getMvcInstance()->disableLayout(); 
     }   
    } 

但響應帶有以下錯誤: 腳本「異步/ tax.phtml」沒有找到路徑(/var/www/app/trunc/application/views/scripts/:./views/scripts/)

+0

把你的死亡,如果你看到天氣停止執行流程。 –

回答

0

爲什麼不使用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') 
} 

然後命名視圖「異步/ tax.ajax.phtml」,並確保你的Ajax調用請求的HTML格式。

通過這種方式,您甚至可以調整代碼以使用相同的控制器/操作自動響應json,phtml或xml。

+0

找到解決方案: ajax請求發送時沒有 X-Requested-With:XMLHttpRequest 頭,這就是爲什麼Zend找不到要呈現的內容。 –

0
  1. 你檢查在/var/www/app/trunc/application/views/scripts/文件tax.phtml是否存在。
  2. 如果存在,則在tax.phtml處將echo exit;置於文件的底部。
+0

它只作爲'scripts/partials/tax.phtml'來呈現ajax請求,不存在任何其他地方。 –

+0

您可以使用'$ this-> renderScript('views/tax.phtml');' 但確保文件位於指定的路徑中。 – Vimalnath