Middle Роутинг и контроллеры Обязательно

HttpRequest и HttpResponse

Объект HttpRequest (Context::getCurrent()->getRequest()) инкапсулирует параметры запроса, предоставляя методы строгого чтения источников (getQuery(), getPost(), getJsonList()) и заголовков. При отправке cookie через Web\Cookie ядро по умолчанию добавляет префикс сайта, что требует внимания при работе с клиентскими скриптами.

Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.

Что нужно понимать

  • 1
    \Bitrix\Main\HttpRequest
  • 2
    \Bitrix\Main\HttpResponse
  • 3
    Получение параметров запроса
  • 4
    Формирование ответа

Материалы

Проверь себя

В заявках с сайта поле «Комментарий» приходит обрезанным на первом символе меньше. Где искать причину?

В фильтре проактивной защиты: класс Request из модуля security реализует IRequestFilter и подключается к HttpRequest через addFilter(), вырезая то, что счёл XSS. У фильтра есть getChangedVars(), по нему видно, что именно изменилось.

Параметр id приходит и в адресе, и в теле формы с разными значениями. Что вернёт $request->get('id')?

Значение из POST: в конструкторе HttpRequest данные объединяются через array_merge, и POST перекрывает GET с тем же именем. Если нужен именно адрес — getQuery(), именно форма — getPost().

Cookie поставили через Web Cookie, а JavaScript не находит её по имени. Почему?

Конструктор Cookie по умолчанию добавляет к имени префикс из настройки главного модуля, обычно BITRIX_SM_. Либо передайте четвёртым аргументом addPrefix равным false, либо читайте её на сервере через getCookie(), который префикс учитывает сам.

Зачем в контроллере JsonPayload, если есть getPost()?

Тело с Content-Type application/json не попадает в POST-параметры. Для него у HttpRequest есть isJson() и getJsonList(), а в действиях контроллера тот же результат даёт автоваринг JsonPayload.

Не сходится?

Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.

Знаете материал лучше?

Предложите ссылку: после проверки она появится в этом разделе.

Войти, чтобы предложить
Поделиться в Telegram
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…
Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти