Ajax запрос методом GET
jQuery.get() – осуществляет запрос к серверу без перезагрузки страницы методом GET, то есть все данные запроса передаются в строке запроса.
Функция имеет несколько необязательных параметров.
jQuery.get(url,[data],[callback],[dataType])
- url — url-адрес, по которому будет отправлен запрос.
- data — данные, которые будут отправлены на сервер. Они должны быть представлены в объектом, в формате: {fName1:value1, fName2:value2, …}.
- callback (data, textStatus, jqXHR) — пользовательская функция, которая будет вызвана после ответа сервера.
- data — данные, присланные с сервера.
- textStatus — статус того, как был выполнен запрос.
- jqXHR — объект jqXHR (в версиях до jquery-1.5, вместо него использовался XMLHttpRequest)
- dataType — ожидаемый тип данных, которые пришлет сервер в ответ на запрос, например, “xml” или “json”.
Отправка данных методом GET. Простое использование
Используя параметр data, мы можем отправить дополнительные данные. Например, можно отправить запрос на получение элемента из базы данных по id:
$.get('ajax.php', { id: "1"});
А поскольку в GET-запросе все данные передаются в строке запроса, то данный код будет аналогичен следующему:
$.get('ajax.php?id=1');
Соответственно на стороне сервера мы сможем получить этот параметр и произвести с ним какие-либо действия, например, получить элемент из бд по данному id:
<?php $id=$_GET['id']; ?>
Отправка данных методом GET. Продвинутое использование
$.get() является сокращенным вариантом функции $.ajax(), вызванной со следующими параметрами:
$.ajax({ url: url, data: data, success: success, dataType: dataType });
Обработка выполнения запроса
Стандартным средством обработки успешного выполнения запроса, является указание собственной функции в параметре success. При вызове она получает данные переданные сервером, текстовый статус выполнения запроса, а так же Объект jqXHR.
Начиная с jQuery-1.5, метод $.get() возвращает объект jqXHR, который помимо прочего реализует интерфейс deferred, что позволяет задавать дополнительные обработчики выполнения. Помимо стандартных для объекта deferred методов .done(), .fail() и .then(), с помощью которых можно устанавливать обработчики, в jqXHR реализованы .success(), .error() и .complete(). Это сделано для соответствия привычным названиям методов, с помощью которых устанавливаются обработчики выполнения ajax-запросов. Однако начиная с jQuery-1.8 эти три метода станут нежелательными для использования.