Методы ajax

jQuery.ajax(options)

Сложная, но самая универсальная функция поддержки архитектуры Ajax, на которой основаны все Ajax-утилиты в библиотеке

Она принимает единственный объект в виде аргумента, свойства которого определяют все тонкости, касающиеся отправки запроса и обработки ответа сервера.

Параметры запроса

  • url - путь обращения
  • dataType - тип загружаемых данных
  • success - обработчик успешной обработки, f(data, textStatus)
$.ajax({
    url: 'serverscript.php',
    dataType : "html",
    success: function (data, textStatus) {
        ...
    }
});
jQuery.ajaxSetup(options)

Устанавливает указанные параметры как значения по умолчанию.

Принимает тот же объект options, какой передается функции ajax().

Указанные вами значения будут использоваться всеми последующими запросами, при оформлении которых не будут явно указаны другие значения параметров.

Эта функция не имеет возвращаемого значения.

$.ajaxSetup({
    url: "serverscript.php",
    global: true,
    type: "POST"
});
jQuery.getJSON(url[, data][, f(object, status)])

Отправляет асинхронный запрос по адресу url, добавляя любые данные data.

Вы полняет синтаксический анализ полученного ответа как строки в формате JSON и передает получившийся объект функции обратного вызова f.

Возвращает объект XMLHttpRequest, если таковой имеется, использовавшийся для выполнения запроса.

jQuery.getScript(url[, f(text, status)])

Отправляет асинхронный запрос по адресу url.

При получении ответа выполняет его как сценарий, а затем передает текст ответа функции f.

Возвращает объект XMLHttpRequest, если таковой имеется, использовавшийся для выполнения запроса.

Позволяет выполнять междоменные запросы, но в этом случае не передает текст сценария функции f и не возвращает объект XMLHttpRequest.

jQuery.get(url[, data[, f(data, status, xhr)[, type]]])

Отправляет асинхронный HTTP GET-запрос по адресу url, добавляя данные data, если указаны, в строку параметров запроса данного URL-адреса.

При получении ответа интерпретирует его как данные типа type или в соответствии со значением заголовка Content-Type ответа и выполняет его или выполняет синтаксический анализ, если это необходимо.

В заключение передает (возможно, в разобранном виде) данные ответа функции обратного вызова f вместе с кодом состояния и объектом XMLHttpRequest, использовавшимся для выполнения запроса.

Этот объект XMLHttpRequest, если имеется, также является возвращаемым значением функции get().

  • url - путь запроса
  • data - передаваемые данные
  • f(data, status, xhr) - обработчик успешного выполнения
  • type - тип получаемых данных, “xml”, “script”, “json”, “jsonp”, “text”
$.get(
    "serverscript.php",
    {
        data: "content",
        data2: "content2"
    },
    function(data, textStatus){
        ...
    },
    "html"
);
jQuery.load(url[, data[, f(text, status, xhr)]])

Отправляет асинхронный запрос по адресу url, добавляя любые данные data.

При получении ответа интерпретирует его как строку с разметкой HTML и вставляет ее в каждый выбранный элемент, замещая любое имеющееся содержимое.

В заключение вызывает f как метод для каждого выбранного элемента, передавая функции f текст ответа, код состояния и объект XMLHttpRequest, использовавшийся для выполнения запроса.

Если значение url включает пробел, любой текст после пробела используется как селектор и в выбранные элементы вставляется только часть документа в ответе, которая соответствует селектору.

В отличие от большинства функций поддержки архитектуры Ajax в библиотеке jQuery, load() является методом, а не функцией. Подобно большинству методов объекта jQuery, возвращает объект jQuery, относительно которого этот метод был вызван.

// загружает HTML код в необходимый DOM элемент на странице
$("#content").load(
    "serverscript.php",
    {
        data: "content"
    },
    function(responseText, textStatus, XMLHttpRequest){
        ...
    }
);
jQuery.post(url[, data[, f(data, status, xhr)[, type]]])

Действует подобно функции get(), но выполняет не GET-запрос, а HTTP POST-запрос.

  • url - путь запроса
  • data - передаваемые данные
  • f(data, status, xhr) - обработчик успешного выполнения
  • type - тип получаемых данных, “xml”, “script”, “json”, “jsonp”, “text”
$.post(
    "serverscript.php",
    {
        data: "content",
        data2: "content2"
    },
    function(data, textStatus){
        ...
    },
    "html"
);
jQuery.param(o[, old=false])

Сериализует имена и значения свойств объекта o в формат «www-form-urlencoded», пригодный для добавления в URL-адрес или для передачи в теле HTTP POST-запроса.

Большинство функций поддержки Ajax в библиотеке jQuery делают это автоматически, если получают объект в параметре data. Если требуется выполнить поверхностную сериализацию объекта в стиле версии jQuery 1.3, во втором аргументе следует передать значение true.

Параметры запроса

параметр описание
async асинхронность запроса, по умолчанию true
beforeSend обработчик, выполняемые перед отправкой
cache вкл/выкл кэширование данных браузером, по умолчанию true
complete обработчик запроса, выполнится в конце в любом случаем
contentType по умолчанию «application/x-www-form-urlencoded»
data передаваемые данные — строка иль объект
dataFilter фильтр для входных данных
dataType тип данных возвращаемых в callback функцию (xml, html, script, json, text, _default)
error обработчик не успешного запроса
global тригер — отвечает за использование глобальных AJAX Event’ов, по умолчанию true
ifModified тригер — проверяет были ли изменения в ответе сервера, дабы не слать еще запрос, по умолчанию false
jsonp переустановить имя callback функции для работы с JSONP (по умолчанию генерируется на лету)
processData по умолчанию отправляемые данный заворачиваются в объект, и отправляются как «application/x-www-form-urlencoded», если надо иначе — отключаем
scriptCharset кодировочка — актуально для JSONP и подгрузки JavaScript’ов
success обработчик успешного запроса
timeout время таймаут в миллисекундах
type GET либо POST
url url запрашиваемого скрипта

События запросов

параметр описание
ajaxError Срабатывает в случае ошибки
ajaxSuccess Срабатывает по возвращению ответа, аналогично success
ajaxComplete Глобальное событие, аналогичное complete
ajaxSend Срабатывает до отправки запроса, аналогично beforeSend
ajaxStart Данный метод вызывается в случае когда побежал AJAX запрос, и при этом других запросов нету
ajaxStop Данный метод вызывается в случае когда больше нету активных запросов
$("#content").ajaxSuccess(function(event, request, settings){
    alert("AJAX event");
});