Reemake Digital Agency · Технический разбор

Ошибка 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-модуль. Предложим решение и оценим сроки. Смета — после аудита, фиксируем в договоре.

Узнайте причины →
8 (950) 442-49-00 reemake@inbox.ru Max Messenger Max

с 8:00 до 20:00 (МСК)

г. Пермь