在这里输入代码
我是magento的新手。 我试图从JavaScript调用Ajax。 我创建了一个模块和一个控制器。 我启用了该模块以及控制器。 我的包名称是包,模块名称是ajax。 Controller Name是模块控制器目录中的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...')
当我尝试访问网址
时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:";
}
}
答案 0 :(得分: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'];
}
答案 1 :(得分: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);