jQuery.post()
Загружает данные с сервера с использованием запроса 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");
Новое в справочниках
- Метод jQuery.ajax() / 20.04.2011
- jQuery-селектор [attribute$="value"] / 04.02.2011
- Метод jQuery.sub() / 31.01.2011
- Популярные плагины jQuery / 20.01.2011
- Метод .animate() в jQuery / 27.12.2010
