Ошибка com_ajax в Joomla 6
при работе с legacy-модулями
Падает ошибка 500 при AJAX-запросе? Классическая ситуация: com_ajax не находит legacy-модуль. Разбираем 4 причины и показываем правильное решение — собственный эндпоинт вместо com_ajax.
4 причины
Почему com_ajax падает в Joomla 6
1. Legacy без namespace
Модуль написан в старой архитектуре. com_ajax не может найти его класс — HTTP 500.
2. JFactory вместо Factory
Устаревший вызов удалён в Joomla 4+. Legacy-модуль падает при первом же запросе.
3. JResponse::setBody
Устаревший способ отдачи ответа. В Joomla 6 не работает вообще.
4. Прямой $_POST
Ломает валидацию. com_ajax ожидает правильно оформленный запрос.
Ошибка типичная: Call to a member function getHelper() on null. Или просто HTTP 500 без подробностей. Диагностируется через логи ошибок.
Решение
Собственный эндпоинт вместо com_ajax
Плагин Reemake AJAX Content Endpoint работает поверх обычного index.php. Никаких зависимостей от внутренних API. Подписывается на onAfterInitialise, проверяет параметр ac_ajax=items, отдаёт JSON.
Результат: AJAX-подгрузка работает стабильно на Joomla 6. Legacy-модули больше не нужны — заменяем их на современный Reemake AJAX Content.
Кейс · ГТРК «Брянск»
Новостной портал: com_ajax падал на каждом обновлении
Задача: ГТРК «Брянск» (Россия 1) — новостной портал на Joomla 6. После обновления ядра com_ajax перестал работать: AJAX-подгрузка ленты падала с ошибкой 500. Читатели не могли листать новости. Редакция теряла трафик.
Что сделали: диагностировали причину — legacy-модуль без namespace. Заменили его на Reemake AJAX Content с собственным эндпоинтом. Настроили фильтры, кеш, ACL. Проверили на тестовой копии сайта, потом переключили на боевой.
Результат: AJAX-подгрузка работает стабильно. Ни одной ошибки 500 за 6 месяцев. Трафик восстановлен в течение недели. Плюс — скорость подгрузки ускорилась с 800 мс до 80 мс.
Вопросы и ответы
Гео и техника
Работаете только в Перми?
Офис в Перми, работаем по всей России. Диагностику com_ajax проводим удалённо — для компаний из Березников, Соликамска, Чайковского, Кунгура, Краснокамска, Лысьвы и других городов.
Ошибка появляется только на Joomla 6?
В основном да. На Joomla 4 и 5 legacy-модули работают через BC-плагины. Но при обновлении до Joomla 6 проблема проявится.
Как обходить?
Использовать собственный эндпоинт вместо com_ajax. Именно так сделано в Reemake AJAX Content Endpoint. Не зависит от внутренних API Joomla.
Сколько занимает замена?
Стандартный случай — 2–3 рабочих дня: диагностика, замена, тестовая публикация. Для крупных порталов с кастомными модулями — обсуждаем отдельно.
Узнайте причину ошибки на вашем сайте
Проведём бесплатный аудит: посмотрим логи, найдём legacy-модуль. Предложим решение и оценим сроки. Смета — после аудита, фиксируем в договоре.
Узнайте причины →




Messenger Max