Skip to content

response

do- edited this page Jan 7, 2020 · 3 revisions

Вызов асинхронной функции await response запускает AJAX-запрос на JSON-данные и обеспечивает базовую обработку ответа.

Table of Contents

Пример

Допустим, $_REQUEST имеет значение:

 $_REQUEST = {
  type: "stat_form_0609204",
  _secret: ['passwd']
 }

Тогда вызов

 await response ({action: 'update'}, {data: {
  name: "v_03_01",
  value: 123,
  passwd: "p4$$w0rd"
 }})

инициирует POST-запрос на URL со строкой запроса

 ?type=stat_form_0609204&action=update 

телом

 {"data":{"name":"v_03_01",value:123}}

и дополнительным HTTP-заголовком

 X-Request-Param-passwd: "p4$$w0rd"

Если полученный ответ будет иметь код 200 OK, тип application/json и содержимое

 {"success":true, "content": {...}}

то содержимое content будет выдано в качестве результата. При нарушении хотя бы одного из перечисленных условий будет сгенерировано исключение, предварительно обработанное функцией $_DO.apologize.

Параметры

1-й параметр — type/id/action/part

1-м параметром передаётся объект для формирования целевого URL функцией dynamicURL.

Он может содержать ключи type, id, action и part. Для неупомянутых полей используются одноимённые компоненты $_REQUEST. Если этот параметр опущен, соответственно, URL формируется прямо из $_REQUEST.

Иногда требуется послать AJAX-запрос безо всяких параметров: для поддержания сессии в отсутствие действий пользователя. При этом следует явно указать {type:undefined}. Впрочем, для таких запросов предусмотрена специальная API-функция $_SESSION.keepAlive.

2-й параметр — данные запроса

Это объект, содержимое которого будет передано в формате JSON в теле POST-запроса и, частично ($_REQUEST._secret), в HTTP-заголовках. То есть параметры запроса, отличные от базовых type, id, action и part.

Если эти данные требуется брать из полей ввода — можно воспользоваться функцией values. Если никаких дополнительных параметров не требуется — параметр может быть опущен.

Clone this wiki locally