从magento调用Ajax的问题


Issue in calling Ajax from magento

此处输入代码

我是新来的magento。我试图从JavaScript调用Ajax。我创建了一个模块和一个控制器。我启用了那个模块和控制器。我的包名称是包和模块名称是ajax。控制器名称为模块控制器目录下的AjaxController.php。函数名我想使用的是ViewAction没有参数。我在回一条简单的信息。

所以我的URL变成了
http://216.12.194.46/~thetyrec/magento/index.php/ajax/ajax/view/
or   http://216.12.194.46/~thetyrec/magento/ajax/ajax/view/

我得到404错误在他们两个。

请引导我。在哪里我可能是错的,或者我如何进一步调试。

我在var/report和log文件中没有看到任何这样的问题。

我下面的教程是http://blog.baobaz.com/en/blog/magento-module-create-your-own-controller

编辑:

经过更多的调试,我发现我得到错误

a:5:{i:0;s:51:"Controller file was loaded but class does not exist";i:1;s:1072:"#0 /home/thetyrec/public_html/magento/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(326): Mage::exception('Mage_Core', 'Controller file...')

当我试图访问URL

http://216.12.194.46/~thetyrec/magento/index.php/ajax/ajax/view

控制器的代码是

class Package_Ajax_AjaxController extends Mage_Core_Controller_Front_Action
{
    public function viewAction()
   {
       echo "I am getting below value:";
    }
}

如果你想从php文件中调用前端控制器的ajax函数,那么你可以这样做:在html页面的顶部创建ajax函数,例如

<script>
function SubmitRequest()
{
  var values = "Your dummy value";
  new Ajax.Request('ajax/index/view/', {
  method: 'post',
  parameters: {cmb: values},
  onSuccess: successFunc()
  });
}
function successFunc(){
   return function(response){     
     var container = $("mydiv");
    var content = response.responseText;
    container.update(content);
  }
}

</script>

你的控制器功能将是这样的:

public function viewAction()
{
    echo  $_POST['cmb'];
 }

如果您仔细阅读他的问题不是如何执行Ajax调用,而是如何调用他的控制器操作。

我建议检查config.xml中<frontend><routers>内的<frontName>标记。

然后调用:

http://216.12.194.46/~thetyrec/magento/index.php/CONTENT OF FRONTNAME/ajax/view

您不需要使用Ajax来验证,只需通过浏览器调用URL。

顺便说一下,不要只是回显,在你的控制器动作中做这样的事情:

$this->getResponse()->setHeader('Content-type', 'application/json');

$this->getResponse()->setBody($jsonData);

祝你好运!