-
Notifications
You must be signed in to change notification settings - Fork 9
response
Вызов асинхронной функции await response запускает AJAX-запрос на JSON-данные и обеспечивает базовую обработку ответа.
Допустим, $_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-м параметром передаётся объект для формирования целевого URL функцией dynamicURL.
Он может содержать ключи type, id, action и part. Для неупомянутых полей используются одноимённые компоненты $_REQUEST. Если этот параметр опущен, соответственно, URL формируется прямо из $_REQUEST.
Иногда требуется послать AJAX-запрос безо всяких параметров: для поддержания сессии в отсутствие действий пользователя. При этом следует явно указать {type:undefined}. Впрочем, для таких запросов предусмотрена специальная API-функция $_SESSION.keepAlive.
Это объект, содержимое которого будет передано в формате JSON в теле POST-запроса и, частично ($_REQUEST._secret), в HTTP-заголовках. То есть параметры запроса, отличные от базовых type, id, action и part.
Если эти данные требуется брать из полей ввода — можно воспользоваться функцией values. Если никаких дополнительных параметров не требуется — параметр может быть опущен.