处理Ajax请求和响应zend框架
发布时间:2020-12-16 02:55:30 所属栏目:百科 来源:网络整理
导读:我想向控制器发送Ajax请求,我在客户端这样做 jQuery.ajax({ url: "public/visits/visit/get-visits",type: "POST",dataType: 'json',data: data,success: function(data){ alert(data) },error:function(){ alert("fail :("); }}); 在服务器端,我处理请求作
我想向控制器发送Ajax请求,我在客户端这样做
jQuery.ajax({ url: "public/visits/visit/get-visits",type: "POST",dataType: 'json',data: data,success: function(data){ alert(data) },error:function(){ alert("fail :("); } }); 在服务器端,我处理请求作为其他请求 public function getVisitsAction() { if (isset($_POST)) { $mapper = new Visits_Model_VisitsMapper(); $allVisits = $mapper->getAllVisits(); echo json_encode($allVisits); } 当我调用该操作时,会发生失败警报,当我通过防火错误检查出来时,我发现它将json数据返回给客户端到页面get-visit.phtml. 如何从发送json请求的页面处理成功函数中的响应并将其重定向到get-visit.phtml页面? 解决方法
Zend有Zend_Controller_Action_Helper_Json执行以下操作:
$this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); echo json_encode($allVisits); exit; 所以它可能更简单: public function getVisitsActions() { if ($this->getRequest()->isXmlHttpRequest()) { if ($this->getRequest()->isPost()) { $mapper = new Visits_Model_VisitsMapper(); $this->_helper->json($mapper->getAllVisits()); } } else { echo 'Not Ajax'; // ... Do normal controller logic here (To catch non ajax calls to the script) } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |