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