Ajax запрос методом POST
jQuery.post() – осуществляет запрос к серверу без перезагрузки страницы методом POST. Функция имеет несколько необязательных параметров.
jQuery.post(url,[data],[callback],[dataType])
- url — url-адрес, по которому будет отправлен запрос.
- data — данные, которые будут отправлены на сервер. Они должны быть представлены в форме объекта, в формате: {fName1:value1, fName2:value2, …}.
- callback (data, textStatus, jqXHR) — пользовательская функция, которая будет вызвана после ответа сервера.
- data — данные, присланные с сервера.
- textStatus — статус того, как был выполнен запрос.
- jqXHR — объект jqXHR (в версиях до jquery-1.5, вместо него использовался XMLHttpRequest)
- dataType — ожидаемый тип данных, которые пришлет сервер в ответ на запрос (подробности тут).
Отправка данных методом POST. Простое использование
Простейший ajax-запрос – пустой запрос к серверу, без обработки ответа. Например, такой запрос можно использовать для подсчета количества определенных действий, например количества кликов по ссылке – каждый раз при клике по определенной ссылке в файле click.php будет выполняться запись в базу:
$(function(){ $('a').click(function(){ $.post("click.php"); }); });
Рассмотрим еще несколько примеров по принципу от простого к более сложному.
- Отправим серверу id ссылки по которой был совершен клик
$(function(){ $('a').click(function(){ $.post("test.php", { id: $(this).attr('id) } ); }); });
- Отправим серверу id ссылки по которой был совершен клик и примем ответ – сколько всего кликов было именно по этой ссылке
$(function(){ $('a').click(function(){ $.post("test.php", { id: $(this).attr('id') }), viewResult }); function viewResult(data) { alert(data) } });
После получения ответа от сервера будет вызвана функция viewResult, которая выведет на экран сообщение с данными, присланными сервером.
- Отправим серверу id ссылки по которой был совершен клик и примем ответ в json формате
$(function(){ $('a').click(function(){ $.post("test.php", { id: $(this).attr('id') }, viewResult, "json" }); function viewResult(data) { alert(data) } });
Отправка данных методом POST. Продвинутое использование
$.post является сокращенным вариантом функции $.ajax(), вызванной со следующими параметрами:
$.ajax({ url: url, type: "POST", data: data, success: success, dataType: dataType });
Обработка выполнения запроса
Стандартным средством обработки успешного выполнения запроса, является указание собственной функции в параметре success. При вызове она получает данные переданные сервером, текстовый статус выполнения запроса, а так же Объект jqXHR.
Начиная с jQuery-1.5, метод $.post() возвращает объект jqXHR, который помимо прочего реализует интерфейс deferred, что позволяет задавать дополнительные обработчики выполнения. Помимо стандартных для объекта deferred методов .done(), .fail() и .then(), с помощью которых можно устанавливать обработчики, в jqXHR реализованы .success(), .error() и .complete(). Это сделано для соответствия привычным названиям методов, с помощью которых устанавливаются обработчики выполнения ajax-запросов.
Примечание:
jqXHR.success(), jqXHR.error(), и jqXHR.complete() обработчики выполнения будут удалены в jQuery 3.0. Вместо этого вы можете использовать jqXHR.done(), jqXHR.fail() и jqXHR.always().
2 пример, 5 строка – скобку забыли)
Поправил. Спасибо за внимательность 🙂