Самый простой вариант, работать с ajax в Joomla, это обратиться к контроллеру компонента.
Пример такого запроса /index.php?option=com_test&task=ajax.method&tmpl=component (Подробнее про &tmpl=component).
При этом сделать это можно как из другого компонента, так и модуля:
let response = await fetch("/index.php?option=com_test&task=ajax.method&tmpl=component&id=123");
if (response.ok) {
let json = await response.json();
} else {
alert("Ошибка HTTP: " + response.status);
}
Контроллер для такого запроса должен быть по адресу /components/com_test/controllers/ajax.php и содержать метод с именем method
<?php
defined('_JEXEC') or die;
class testControllerAjax extends JControllerForm
{
public function method()
{
$aRet = array();
$input = JFactory::getApplication()->input;
$id= $input->getInt('id', 0);
$oModel = JModelLegacy::getInstance('Item', 'testModel');
$aRet = $oModel->method($id);
header("Content-Type: application/json");
die( json_encode($aRet) );
}
}