BX.ajax - функция для отправки аяксовых запросов
Функция возвращает ссылку на объект 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
и обновить это данные.
Запрос
Пример рабочего скрипта, когда на клиенте делается запрос к файлу обработчику:
// функция которую инициализируем, например по клику на кнопку
function LazyBanner() {
BX.ajax({
url: '/test.php', // файл на который идет запрос
method: 'POST', // метод запроса GET/POST
// параметры передаваемый запросом
data: {
NAME: 1
},
// ответ сервера лежит в data
onsuccess: function(data) {
document.querySelector("#www").innerHTML = data
}
})
}
Возможные значения:
url
URL запросаmethod
GET|POSTdata
POST данные для отправки (строка или объект)dataType
html|json|script данные какого типа предполагаются в ответеtimeout
60 таймаут запроса в секундахasync
true|false должен ли запрос быть асинхронным или нетprocessData
true|false нужно ли сразу обрабатывать данные?scriptsRunFirst
false|true нужно ли выполнять все найденные скрипты перед тем, как отдавать сожеримое обработчику или только те, в тэге которых присутствует атрибут bxrunfirstemulateOnload
true|false – нужно ли эмулировать событие window.onload для загруженных скриптовstart
true|false отправить ли запрос сразу или он будет запущен вручнуюcache
true|false – в случае значения false к параметру URL будет добавляться случайный кусок, чтобы избежать браузерного кэшированияonsuccess
функция-обработчик результатаonfailure
функция-обработчик ошибки