0

在此处输入代码

我是 magento 的新手。我正在尝试从 JavaScript 调用 Ajax。我创建了一个模块和一个控制器。我启用了该模块以及控制器。我的包名称是包,模块名称是 ajax。控制器名称是模块控制器目录中的 AjaxController.php。我要使用的函数名称是没有参数的 ViewAction。我在回应一个简单的信息。

所以我的网址变成了

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 和日志文件中没有看到任何此类问题。

我正在关注的教程是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:";
    }
}
4

2 回答 2

1

如果您想从 phtml 文件中调用前端控制器的 ajax 函数,那么您可以这样做:在 phtml 上的页面顶部创建 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'];
 }
于 2013-06-17T04:37:25.670 回答
0

如果您仔细阅读,他的问题不是如何进行 Ajax 调用,而是一般地调用他的控制器动作。

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

然后调用:

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);

祝你好运!

于 2013-06-18T15:04:33.420 回答