Битрикс: форма обратной связи на AJAX. Почему нет результата в ответе ссервера?

Делаю форму во всплывающем окне без перезагрузки.

По клику отправляю POST-запрос, в шаблоне его ловлю:
if($_POST['FEEDBACK_AJAX'] === 'Y') {
    $APPLICATION->RestartBuffer();
    header('Content-type: application/json');
        echo json_encode(array(
            'arResult' => $arResult
        ));
        die(); 
}


В итоге приходит вот такой arResult:
arResult: {
 PARAMS_HASH : "9bacde48eda26d431ef26c0ad582f49d"
capCode: "0d68181348986b338adf6b02cf954da2"
}


Если же отключить аякс и попробовать просто отправить форму, то при помощи print_r() выводится следующее содержимое arResult:
Array
(
    [PARAMS_HASH] => 9bacde48eda26d431ef26c0ad582f49d
    [ERROR_MESSAGE] => Array
        (
            [0] => Вы не написали сообщение.
        )

    [MESSAGE] => 
    [AUTHOR_NAME] => admin
    [AUTHOR_EMAIL] => testsite@yan.ru
)


В нем есть ERROR_MESSAGE! А если отправлять аяксом - нет. Почему так? Как с этим бороться?
  • Вопрос задан
  • 1466 просмотров
Решения вопроса 1
babarun
@babarun Куратор тега 1С-Битрикс
Безумный план моих идей в руках больных людей
Скорее всего компонент(не шаблон) не получает всех нужных параметров которые приходят обычным постом. Меня смущает почему у вас капча вылезает. Компонент стандартный - form.result.new?

Попробуйте посмотреть разницу в запросах между обычным и ajax, дополнив код:
echo json_encode(array(
            'arResult' => $arResult,
            'GET' => $_GET,
            'POST' => $_POST,
        ));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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