I am calling admin controller via ajax, but it is not being called. Here is the controller file-
Assel/Allstock/controllers/Adminhtml/AllstockController
<?php
class Assel_Allstock_Adminhtml_AllstockController extends Mage_Adminhtml_Controller_Action
{
protected function _isAllowed()
{
return true;
}
protected function _initAction() {
$this->loadLayout()
->_setActiveMenu('Purchase')
->_addBreadcrumb(Mage::helper('adminhtml')->__('Allstock'), Mage::helper('adminhtml')->__('Allstock'));
return $this;
}
public function indexAction() {
$this->_initAction()
->_addContent($this->getLayout()->createBlock('allstock/adminhtml_allstock'))
->renderLayout();
}
public function productStockAction()
{
return "hello";
}
// Used for AJAX loading
public function gridAction()
{
$this->loadLayout();
$this->getResponse()->setBody(
$this->getLayout()->createBlock('allstock/adminhtml_allstock_grid')->toHtml()
);
}
}
?>
Here is my config.xml-
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Assel_Allstock>
<version>1.0.0</version>
</Assel_Allstock>
</modules>
<admin>
<routers>
<adminhtml>
<args>
<modules>
<assel_allstock after="Mage_Adminhtml">Assel_Allstock_Adminhtml</assel_allstock>
</modules>
</args>
</adminhtml>
</routers>
</admin>
<global>
<helpers>
<allstock>
<class>Assel_Allstock_Helper</class>
</allstock>
</helpers>
<blocks>
<allstock>
<class>Assel_Allstock_Block</class>
</allstock>
</blocks>
</global>
<adminhtml>
<layout>
<updates>
<assel_allstock>
<file>assel/allstock.xml</file>
</allstock>
</updates>
</layout>
</adminhtml>
</config>
Here is the template file --
adminhtml/base/default/template/assel/allstock.phtml
<script>
var url= "<?php echo $this->getUrl('allstock/adminhtml_allstock/productStock/'); ?>";
$j('#product_search').keyup(function() {
delay(function(){
new Ajax.Request(url, {
method: 'get',
onSuccess: function(response){debugger
},
onFailure: function(response) {debugger
Element.hide('loading-mask');
alert("An error has been occured during Ajax call, please try again");
},
});
}, 2000 );
});
var delay = (function(){
var timer = 0;
return function(callback, ms){
clearTimeout (timer);
timer = setTimeout(callback, ms);
};
})();
</script>
I am getting this value in url variable in ajax-
"http://example.com/index.php/admin/allstock/productStock/key/NuEkv9QcEXoP4NWr/?isAjax=true"
I am getting 404 error in ajax call. Not sure why I am getting this. Can anyone help me into this.