jQuery.get()

Returns: jqXHR

Загружает данные с сервера, используя HTTP GET запрос.

  • version added: 1.0jQuery.get( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )

    url
    Тип: строка
    Адрес, на который отправляется запрос.

    data
    Тип: объект или строка
    Данные, отправляемые на сервер в виде объекта (ключ:значение) или строки.

    success(data, textStatus, jqXHR)
    Тип: функция
    Функция, вызываемая при успешном завершении Ajax запроса.

    dataType
    Тип: строка
    Тип данных, ожидаемых в качестве ответа от сервера. По умолчанию jQuery определит сам.

$.get() эквивалетна:

$.ajax({
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

Функция обратного вызова success, принимает ответ от сервера, который может быть в виде XML, строки, JavaScript файла или объекта JSON, в зависимости от MIME типа ответа. Это значение так же помещается в статус ответа.

Начиная с версии 1.5, функция обратного вызова success принимает объект jqXHR (в ранних версиях объект XMLHttpRequest). В случае использования JSONP, значение второго и третьего параметры функции будет неопределённым (undefined), т.к. при кросс-доменных GET запросах, объект XHR не используется.

$.get('ajax/test.html', function(data) {
  $('.result').html(data);
  alert('Загрузка завершена.');
});

Данный код делает запрос к HTML файлу и выводит его содержимое.

Объект jqXHR

Начиная с версии 1.5, $.get() возвращает объект jqXHR, реализующий интерфейс deferred, что позволяет задавать дополнительные обработчики. Помимо стандартных для объекта deferred методов .done(), .fail() и .then(), с помощью которых можно устанавливать обработчики, в jqXHR реализованы их копии: .success(), .error() и .complete(). Это сделано для соответствия привычным названиям методов, с помощью которых устанавливаются обработчики выполнения ajax-запросов.

// запускаем ajax-запрос, устанавливаем обработчики событий.
// Возвращаемые методом $.get объект сохраним в переменной jqxhr для дальнейшего использования
var jqxhr = $.get("example.php", function() {
  alert("success");
})
.done(function() { alert("second success"); })
.fail(function() { alert("error"); })
.always(function() { alert("finished"); });
 
// установим еще один обработчик завершения запроса
jqxhr.always(function(){ alert("second finished"); });

Заметка об устаревших методах

Функции обратного действия, введённые в jQuery 1.5 устарени в версии 1.8. Вместо jqXHR.success(), jqXHR.error() и jqXHR.complete() теперь следует использовать jqXHR.done(), jqXHR.fail() и jqXHR.always().

Примеры

Сделать запрос к test.php, игнорируя ответ:

$.get("test.php");

Сделать запрос к test.php, передать данные, игнорировать ответ:

$.get("test.php", { name: "John", time: "2pm" } );

Передать массив данных на сервер, игнорируя ответ:

$.get("test.php", { 'choices[]': ["Jon", "Susan"]} );

Обработать ответ от сервера (HTML или XML в зависимости от того, что пришло):

$.get("test.php", function(data) {
  alert("Data Loaded: " + data);
});

Сделать запрос к test.cgi, предать данные, обработать ответ (HTML или XML в зависимости от того, что пришло):

$.get("test.cgi", { name: "John", time: "2pm" })
.done(function(data) {
  alert("Data Loaded: " + data);
});

Получить от сервера ответ в JSON формате и вывести его на страницу (<?php echo json_encode(array("name"=>"John","time"=>"2pm")); ?>):

$.get("test.php",
   function(data) {
     $('body').append( "Name: " + data.name ) // John
              .append( "Time: " + data.time ); //  2pm
   }, "json");

Связанные уроки:

  • Желтые стикеры с помощью AJAX, PHP и jQuery

    Сегодня мы создаем систему управления желтыми стикерами.

  • Что нового в jQuery 1.5?

    Совсем недавно, как и было обещано, группа разработчиков библиотеки jQuery выпустила новую версию своего продукта. Я попытаюсь вам рассказать о фитчах, которые вошли в свежий релиз.

^ Наверх ^