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

BX.ajax

XMLHttpRequest BX.ajax(
	object params
);

Низкоуровневая функция для отправки аяксовых запросов. Формат объекта params:

{
	url: URL запроса
	method: GET|POST
	data: POST-данные для отправки (строка или объект)
	dataType: html|json|script – данные какого типа предполагаются в ответе
	timeout: 60 – таймаут запроса в секундах
	async: true|false – должен ли запрос быть асинхронным или нет
	processData: true|false – нужно ли сразу обрабатывать данные?
	scriptsRunFirst: false|true – нужно ли выполнять все найденные скрипты перед тем, как отдавать содержимое обработчику или только те, в тэге которых присутствует атрибут bxrunfirst
	emulateOnload: true|false – нужно ли эмулировать событие window.onload для загруженных скриптов
	start: true|false – отправить ли запрос сразу или он будет запущен вручную
	cache: true|false – в случае значения false к параметру URL будет добавляться случайный кусок, чтобы избежать браузерного кэширования
	onsuccess: функция-обработчик результата
	onfailure: функция-обработчик ошибки
}

Функция возвращает ссылку на объект XMLHttpRequest, при помощи которого осуществляется запрос. В случае успеха запроса будет вызван обработчик onsuccess. В качестве параметра будет результат запроса. Если параметр processData установлен в true, то обработка будет в зависимости от типа данных:

  • html: результат будет очищен от js-кода. Код будет выполнен после передачи данных обработчику. Перед передачей будут выполнены все скрипты с атрибутом bxrunfirst, или все скрипты, если параметр scriptsRunFirst установлен в true;
  • script: полученный результат будет передан обработчику и выполнен. Что раньше – определяется параметром scriptsRunFirst
  • json: результат будет интерпретирован как описание объекта в формате json. Обработчик получит объект.

Если подключена библиотека для работы с localStorage (core_ls), то помимо перечисленных параметров можно использовать указать параметры:

  • lsId – строковой идентификатор для передачи данных запроса между различными вкладками;
  • lsTimeout – время жизни данных запроса
  • lsForce - false|true

Эти параметры предназначены для интерфейсов, постоянно опрашивающих сервер с целью получения каких-либо данных. В этом случае данные запроса будут сохраняться в localStorage, и если в любой вкладке текущего браузера будет сделан запрос с тем же самым lsId, то вместо совершения запроса обработчик получит данные, сохраненные в localStorage. Соответственно, lsTimeout должен быть чуть меньше интервала отправки запросов. Параметр lsForce позволяет принудительно отправить запрос в обход проверки наличия данных в localStorage и обновить это данные.



© «Битрикс», 2001-2024, «1С-Битрикс», 2024