2015-12-18 37 views
0

我对zend框架有点新。试图对我的控制器/ indexAction()进行Ajax调用,并且收到错误警报。 有人可以帮忙吗?我试图从其他帖子获得答案,但无法获得正确的解决方案。Ajax调用我的Zend控制器

我的JS文件与Ajax行动。

$('.libox').click(function() { 
 
     var contentPanelId = $(this).attr("id"); 
 
     alert(contentPanelId); 
 
     $.ajax({ 
 
      url: "public_html/application/controllers/IndexController.php", 
 
      type: "POST", 
 
      dataType: 'json', 
 
      data: contentPanelId, 
 
      success: function (data) { 
 
       alert(data); 
 
      }, 
 
      error: function() { 
 
       alert("fail :("); 
 
      } 
 
     }); 
 
    });

我的控制器

class IndexController extends Zend_Controller_Action { 
 

 
public function indexAction() { 
 

 

 
    if ($this->getRequest()->isXmlHttpRequest()) { 
 
     if ($this->getRequest()->isPost()) { 
 
      $_custObj = new Application_Model_DbTable_Shuffle(); 
 
      $this->_helper->json($_custObj->getData()); 
 
     } 
 
    } else { 
 
    } 
 
} 
 

 
}

控制总是会出错:在Ajax调用显示功能(),并获得 “失败:(” 警报。

+0

URL在Ajax调用是错误的。它不应该以扩展名结尾。您只需提及控制器名称和操作,如“url:”Index/index /“。 –

+0

@SameerK - 我的索引/操作位于我的ZF的“public_html/application/controllers/IndexController.php”中。并且我将URL作为“索引/索引”。我仍然得到同样的错误。 – sri

+0

URL中的控制器名称需要以大写字母开头,所以它的'索引/索引'。除了这几个问题 - 1)JS文件位于哪里? 2)你有没有在application.ini文件中配置控制器路径? 3)是否在产生''404页面未找到'错误中请求URL? –

回答

0

,我改变你的jQuery代码。使用这样的:

$('.libox').click(function() { 
    var contentPanelId = $(this).attr("id"); 
    alert(contentPanelId); 
    $.ajax({ 
     url: "/index/index", 
     type: "POST", 
     dataType: 'json', 
     data: contentPanelId, 
     success: function (data) { 
      alert(data); 
     }, 
     error: function() { 
      alert("fail :("); 
     } 
    }); 
}); 
+0

的建议,我改变了URL后,它工作。谢谢你的工作。 :) – sri