此处输入代码
我是新来的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);
祝你好运!