Метод get
осуществляет GET-запрос к серверу, то есть все данные запроса передаются в строке запроса. Он принимает следующие параметры:
url
: обязательный параметр, содержащий адрес ресурса, к которому будет обращаться запрос
data
: необязательный параметр, содержащий простой объект javascript или строку, которые будут отправлены на сервер вместе с запросом
success(data, textStatus, jqXHR)
: необязательный параметр - функция обратного вызова, которая будет выполняться при
успешном выполнении запроса. Она может принимать три параметра: data
- данные, полученные с сервера, textStatus
-
- статус запроса и jqXHR
- специальный объект jQuery, который представляет расширенный вариант объекта XMLHttpRequest.
dataType
: необязательный параметр, содержащий тип данных в виде строки, например, "xml" или "json"
На выходе метод get возвращает объект jqXHR
, который будет инкапсулировать данные запроса. Позднее мы подробнее разберем этот объект.
Итак, перепишем пример из предыдущего параграфа с использованием метода get
:
$(function(){ $('button').click(function(){ $.get('ajax.php', function(data) { $('#news').html(data); alert('Данные заружены'); }); }); });
Здесь использованы два первых параметра: адрес ресурса и функция обратного вызова. В этой функции в качестве параметра data мы получаем принятые от сервера
данные и загружаем их в качестве разметки в элемент выборки ($('#news').html(data);
). По сути то же самой мы могли бы сделать с помощью
метода load
.
Используя параметр data, мы можем отправить дополнительные данные. Например, можно отправить запрос на получение элемента из базы данных по id:
$.get('ajax.php', { id: "1"});
А поскольку в GET-запросе все данные передаются в строке запроса, то данный код будет аналогичен следующему:
$.get('ajax.php?id=1');
Соответственно на стороне сервера мы сможем получить этот параметр и произвести с ним какие-либо действия, например, получить элемент из бд по данному id:
<?php $id=$_GET['id']; ?>
Нередко возникает такая ситуация, когда сервер отправляет данные в определенном формате, например, json или xml. Так, php-файл на стороне сервера мог бы выглядеть следующим образом:
<?php echo json_encode(array("event"=>"Начало чемпионата России","date"=>"13.07.2013")); ?>
В данном случае он возвращает объект json. Тогда на клиентской стороне мы можем явно прописать тип данных, а в функции обработать принятые данные:
$.get('ajax.php', function(data) { $('#news').empty().append("<h3>"+data.event+"</h3><h5>"+data.date+"</h5>"); }, 'json');