ajax запрос в метод компонента

26
Алексей,
ajax запрос в метод компонента
ajax запрос в метод компонента

Чтоб не создавать лишних скриптов, битрикс позволяет делать запросы прямо в нужный метод класса компонента.

Чтоб не создавать лишних скриптов, битрикс позволяет делать запросы прямо в нужный метод класса компонента.
Покажу на примере пустого компонента:

Создаём /local/components/custom/component/class.php

use Bitrix\Main\Engine\Contract\Controllerable;
class CustomComponent extends CBitrixComponent implements Controllerable
{
	public function configureActions()
	{
		return [
			'ajaxData' => [],
		];
	}
	public function ajaxDataAction()
	{
		# тут код обработки ajax запроса
		$request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest();
		if ($request->get('test') === 'Y') {
			return 'ajax запрос успешно обработан';
		} else {
			throw new \Bitrix\Main\SystemException('Какая-то ошибка');
		}
	}

	public function executeComponent()
	{
		$this->includeComponentTemplate();
	}
}

В шаблоне компонента, создаём:
/local/components/custom/component/templates/.default/template.php (пустой)
/local/components/custom/component/templates/.default/script.js и добавляем код

BX.ajax.runComponentAction('custom:component', 'ajaxData', {
	mode: 'class',
	data: {test: 'Y'}
}).then(function (response) {
	console.log(response);
}, function (response) { // status !== 'success'
	console.error(response);
});

Получим аякс запрос на страницу /bitrix/services/main/ajax.php?mode=class&c=custom:component&action=ajaxData и результат, который возвращает метод ajaxDataAction()

Важно. При выполнении аякс запроса, метод executeComponent() не запускается.

Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 10 сентября 2025
ajax, примеры кода, компонент
Поделиться
Похожие статьи
Как в result_modifier вызвать метод класса
Через метод объекта $this->getComponent() доступны все методы класса.
Читать дальше » 0
Комментарии
❮…❯
Авторизуйтесь чтобы получать уведомления об ответе
Чтоб не создавать лишних скриптов, битрикс позволяет делать запросы прямо в нужный метод класса компонента.