2013-06-15 3 views
0

введите кодПроблема при звонке Ajax от magento

Я новичок в magento. Я пытаюсь позвонить Ajax из JavaScript. Я создал модуль и один контроллер. Я включил этот модуль, а также контроллер. Имя моего пакета - это имя пакета и модуля ajax. Имя контроллера - AjaxController.php в каталоге контроллера модуля. имя функции Я хочу использовать ViewAction без Params. Я эхо простое сообщение.

Так что мой 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

Edit:

После дополнительной отладки я обнаружил, что я получаю ошибку

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:"; 
    } 
} 

ответ

1

Если вы хотите назвать эту АЯКС функцию вашего фронт-контроллера от PHTML файлов, то вы можете сделать это следующим образом: Создать функцию АЯКС на верхней части страницы на PHTML как

<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']; 
} 
0

Если вы внимательно прочитать его проблема заключается не в том, чтобы сделать вызов Ajax, но назвать его со ntroller вообще.

Я бы посоветовал проверить тег <frontName> внутри <frontend><routers> в config.xml.

Затем сделать вызов:

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

Вам не нужно использовать Ajax для проверки, просто вызовите URL через ваш браузер.

И кстати dont't просто эхо, сделать что-то подобное в вашем действии контроллера:

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

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

Удачи!

Смежные вопросы