Документация для разработчиков
Темная тема

AjaxJson

\Bitrix\Main\Engine\Response\AjaxJson - методы json-ответов.

По умолчанию все ответы от контроллеров \Bitrix\Main\Engine\Controller имеют типизированную структуру, которую прекрасно понимают js API BX.ajax.runAction, BX.ajax.runComponentAction:

{
	"status": string,
	"data": mixed,
	"errors": array
}
Каким образом AjaxJson создается внутри контроллеров можно ознакомиться здесь.

Методы

Метод Описание С версии
__construct(
	$data = null,
	$status = self::STATUS_SUCCESS,
	ErrorCollection $errorCollection = null
)
Конструктор класса. Параметры:
  • $data {mixed} Данные, основная часть json-ответа. Должны конвертироваться в json-представление механизмами php либо, реализуя один из интерфейсов:
    \JsonSerializable
    \Bitrix\Main\Type\Contract\Jsonable
    \Bitrix\Main\Type\Contract\Arrayable
  • $status {string} Статус ответа. По умолчанию success.
  • $errorCollection \Bitrix\Main\ErrorCollection Коллекция ошибок. По умолчанию пуста.
createSuccess(
	$data = null
)
Создает объект AjaxJson со статусом success.
createError(
	ErrorCollection $errorCollection = null,
	$data = null
)
Создает объект AjaxJson со статусом error и позволяет передать коллецию ошибок и, при необходимости, данные.
createDenied(
	ErrorCollection $errorCollection = null,
	$data = null
)
Создает объект AjaxJson со статусом denied и позволяет передать коллецию ошибок и при необходимости данные.

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Вячеслав Докукин
Сообщение не промодерировано, возможны ошибки и неточности.
Например в рауте API модуля /routes/api.php
Код
use Bitrix\Main\Error;
use Bitrix\Main\ErrorCollection;
use Bitrix\Main\Routing\RoutingConfigurator;
use \Bitrix\Main\Engine\Response\AjaxJson;

return static function (RoutingConfigurator $router) {
    $router->prefix('scoreReport')->group(static function (RoutingConfigurator $router) {
        $router->any('process', static function (\Bitrix\Main\HttpRequest $request) {

            $fields = $request->getPostList()->toArray();
            
            if (empty($fields['dist'])) {
                return AjaxJson::createError(
                    new ErrorCollection(
                        [new Error('some error')]
                    )
                );
            }

            //...

       return AjaxJson::createSuccess();

        });
    });
};
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх