lamo4ok
@lamo4ok
Программист

Каким событием (хуком) можно отловить отправку AJAX-формы с сайта на Bitrix?

Есть сайт, на нем есть форма обратного звонка, которая отправляется на бекенд примерно таким образом:

function() {
  BX.ajax.submitComponentForm(this, 'comp_17d0ec4a88062c4249d63e84f9ffc380', true)
}


Вопрос: как на бекенде отловить отправку этой или вообще какой угодно формы? Будет здорово, если это можно реализовать с помощью хуков ("событий" в терминологии Битрикс), которые можно поместить куда-то вроде /bitrix/php_interface/init.php.
  • Вопрос задан
  • 3170 просмотров
Решения вопроса 1
gromdron
@gromdron
Работаю с Bitrix24
Никак.
То есть Вы не можете отловить отправку всех форм на бек-энде, потому что каждая форма это по факту не единый запрос на какой-то адрес, а обычный POST/GET в iframe на тот же адресс.
То есть, как это работает:
1) На JS вы выполняете отправку формы (триггерите данную функцию)
2) Функция создает невидимый iframe и задает target формы на данный iframe
3) Этот iframe отправляется, а результат который возвращается из него, заменяется в контейнере формы

Единственное что вы можете сделать - это на JS: подвесится на все формы на submit событие (стандартный для JS) или на битриксовое onAjaxSuccess (когда форма уже отправлена, а результат получен).
Можно конечно в init.php ловить все GET/POST запросы, но это уже дикость.

P.S. Правьте компонент, а не костыли вставляйте
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы