Загружает данные с сервера с использованием запроса HTTP POST. Метод появился в jQuery 1.0.

jQuery.post( url, [ data ], [ success(data, textStatus, XMLHttpRequest) ], [ dataType ] )

  • url — Строка, содержащая URL-адрес, куда будет послан запрос.
  • data — Объект или строка, которая будет отправлена на сервер вместе с запросом.
  • success(data, textStatus, XMLHttpRequest) — Функция, которая будет вызвана при успешном выполнении запроса.
  • dataType — Тип данных, ожидаемых от сервера.

Метод jQuery.post() является сокращенным Ajax-методом, и эквивалентен следующей конструкции:

$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success
  dataType: dataType
})

В функцию success в качестве аргумента передаются возвращенные запросом данные, которые могут быть в текстовом или XML формате в зависимости от MIME-типа ответа сервера. Также в качестве аргумента передается текстовый статус ответа сервера.

Начиная с версии jQuery 1.4, в функцию success также передается объект XMLHttpRequest.

В большинстве реализаций метода jQuery.post() программистами указывается обработчик success:

$.post('ajax/test.html', function(data) {
  $('.result').html(data);
})

В этом примере возвращенные данные вставляются на HTML-страницу.

Страницы, обрабатываемые с запросом POST никогда не кэшируются, поэтому опции cache и ifModified в методе jQuery.ajaxSetup() не играют никакой роли при этих запросах.

Дополнительные замечания по методу .post():

  • Из-за ограничений безопасности в браузерах большинство Ajax-запросов не могут успешно получать данные от домена, поддомена или по протоколу, отличными от текущих.
  • Если запрос с помощью метода jQuery.post() возвращает код ошибки, не происходит никаких внешних проявлений ошибки, пока не будет вызван глобальный метод .ajaxError() .

Примеры использования метода jQuery.post()

Задача: Сделать запрос на страницу test.php, но проигнорировать полученные результаты.

$.post("test.php");

Задача: Сделать запрос на страницу test.php, отправив вместе с запросом дополнительные данные (также проигнорировав полученные результаты).

$.post("test.php", { name: "John", time: "2pm" } );

Задача: Послать массив с данными на сервер (проигнорировав полученные результаты).

$.post("test.php", { 'choices[]': ["Jon", "Susan"] });

Задача: Послать данные формы, используя Ajax-запрос типа POST.

$.post("test.php", $("#testform").serialize());

Задача: Выдать сообщение с результатом POST-запроса на страницу test.php (HTML или XML, в зависимости от того, что вернет сервер).

$.post("test.php", function(data){
  alert("Полученные данные: " + data);
});

Задача: Выдать сообщение с результатом POST-запроса, послав на сервер дополнительные данные.

$.post("test.php", { name: "John", time: "2pm" },
  function(data){
    alert("Полученные данные: " + data);
});

Задача: Получить содержимое страницы test.php, сохранить его в объекте XMLHttpResponse и применить к нему собственную JavaScript-функцию process().

$.post("test.php", { name: "John", time: "2pm" },
  function(data){
    process(data);
}, "xml");

Задача: Получить содержимое страницы test.php в JSON-формате.

$.post("test.php", { "func": "getNameAndTime" },
  function(data){
    alert(data.name); // John
    console.log(data.time); //  2pm
}, "json");