Всем привет!
Начал изучать что такое runComponentAction в битрикс.
Вот официальная документация:
Вот пример:
Захотелось самому попробовать - создал простой компонент, добавил в него метод
в class.php
На странице разместил код вызова компонента:
Компонент нормально отрабатывает. Выводит на страницу результат A+B
На странице разместил вот такой код:
Но если в браузере эту страницу открыть, то в консоли Google Chrome появляется ошибка:
Я понимаю что у меня нигде модуль Push & Pull не работает. Сервер локальный - OpenServer 6.4.6
Но мне и не нужен этот модуль, я просто хочу понять как работает runComponentAction. Отработает ли мой метод из class.php и выведет ли он мне корректный результат в консоль, вот и всё. Потом тоже самое хочу попробовать и с ajax.php компонента
Подскажите, как вылечить ошибку Push & Pull server is disabled ?
До этого была другая ошибка, когда не было строк
то в консоли вываливалась ошибка
Добавил строки
И теперь битрикс ругается на модуль Push & Pull
Скриншот прикрепил
Начал изучать что такое runComponentAction в битрикс.
Вот официальная документация:
Вот пример:
Захотелось самому попробовать - создал простой компонент, добавил в него метод
| Код |
|---|
public function myTestAction($param1, $param2, $param3)
{
return ['first_param' => $param1, 'second_param' => $param2, 'third_param' => $param3];
} |
в class.php
На странице разместил код вызова компонента:
| Код |
|---|
<?php require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); ?> <?$APPLICATION->IncludeComponent( "custom:testcomponent", ".default", array( "COMPONENT_TEMPLATE" => ".default", "IBLOCK_ID" => "", "A" => "4", "B" => "5", "CACHE_TYPE" => "A", "CACHE_TIME" => "3600", "IBLOCK_TYPE" => "news" ), null );?> <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?> |
Компонент нормально отрабатывает. Выводит на страницу результат A+B
На странице разместил вот такой код:
| Код |
|---|
<?php
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
$APPLICATION->ShowHead();
CJSCore::Init(array("fx"));
?>
<sc ript>
// делаем ajax запрос в компонент custom:testcomponent к методу myTestAction()
var request = BX.ajax.runComponentAction('custom:testcomponent', 'myTest', {
mode: 'class',
data: {
param1: 'My_param1_value',
param2: 'My_param2_value',
param3: 'developer',
sessid: BX.message('bitrix_sessid')
}
});
// промис в который прийдет ответ
request.then(function (response) {
console.log(response);
});
</sc ript>
<?require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_after.php');?> |
Но если в браузере эту страницу открыть, то в консоли Google Chrome появляется ошибка:
| Код |
|---|
Uncaught (in promise): Push & Pull server is disabled |
Я понимаю что у меня нигде модуль Push & Pull не работает. Сервер локальный - OpenServer 6.4.6
Но мне и не нужен этот модуль, я просто хочу понять как работает runComponentAction. Отработает ли мой метод из class.php и выведет ли он мне корректный результат в консоль, вот и всё. Потом тоже самое хочу попробовать и с ajax.php компонента
Подскажите, как вылечить ошибку Push & Pull server is disabled ?
До этого была другая ошибка, когда не было строк
| Код |
|---|
$APPLICATION->ShowHead();
CJSCore::Init(array("fx")); |
то в консоли вываливалась ошибка
| Код |
|---|
ajax.php:5 Uncaught ReferenceError: BX is not defined |
Добавил строки
| Код |
|---|
$APPLICATION->ShowHead();
CJSCore::Init(array("fx")); |
И теперь битрикс ругается на модуль Push & Pull
Скриншот прикрепил