Spec-Zone.ru › jQuery

jQuery.get()

jQuery.get( url [, data ] [, success ] [, dataType ] )Возвращает: jqXHR

Описание: Загрузка данных с сервера с помощью запроса HTTP GET.

  • версия добавлена: 1.0jQuery.get( url [, data ] [, success ] [, dataType ] )

    • url
      Тип: Строка
      Строка, содержащая URL, к которому отправляется запрос.
    • data
      Тип: Объект или Строка
      Объект или строка, отправляемые на сервер с запросом.
    • success
      Тип: Функция( Объект данные, Строка статус, jqXHR jqXHR )
      Обработчик, который выполняется при успешном запросе. Требуется, если dataType указано, но вы можете использовать null или jQuery.noop в качестве заглушки.
    • dataType
      Тип: Строка
      Тип данных, ожидаемых от сервера. По умолчанию: Интеллектуальная угадайка (xml, json, script, текст, html).
  • версия добавлена: 1.12-and-2.2jQuery.get( [settings ] )

    • settings
      Тип: Объект
      Набор пар «ключ-значение», которые конфигурируют запрос Ajax. Все свойства, кроме url, являются необязательными. Значение по умолчанию можно задать с помощью $.ajaxSetup(). См. jQuery.ajax( settings ) для полного списка всех параметров. Параметр type автоматически устанавливается в GET.

Это сокращенная функция Ajax, которая эквивалентна:

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

Обработчик success получает возвращенные данные, которые будут корневым XML-элементом, строкой текста, JavaScript-файлом или JSON-объектом, в зависимости от типа MIME ответа. Он также получает статус текста ответа.

Начиная с jQuery 1.5, обработчик success также получает объект "jqXHR" (в jQuery 1.4 передавался объект XMLHttpRequest). Однако, поскольку JSONP и кросс-доменные запросы GET не используют XHR, в этих случаях параметры jqXHR и textStatus в обработчике success будут неопределенными.

Большинство реализаций укажут обработчик успеха:

$.get( "ajax/test.html", function( data ) {
  $( ".result" ).html( data );
  alert( "Load was performed." );
});

Этот пример получает запрашиваемый фрагмент HTML и вставляет его на страницу.

Объект jqXHR

Начиная с jQuery 1.5, все Ajax-методы jQuery возвращают расширение объекта XMLHTTPRequest. Этот jQuery-объект XHR или "jqXHR", возвращаемый $.get(), реализует интерфейс Promise, предоставляя все свойства, методы и поведение Promise (см. Объект Deferred для получения дополнительной информации). Методы jqXHR.done() (для успеха), jqXHR.fail() (для ошибки) и jqXHR.always() (для завершения, как успеха, так и ошибки; добавлено в jQuery 1.6) принимают аргумент-функцию, которая вызывается при завершении запроса. Сведения об аргументах, которые получает эта функция, см. в разделе "Объект jqXHR" документации $.ajax().

Интерфейс Promise также позволяет методам Ajax jQuery, включая $.get(), цеплять несколько .done(), .fail(), и .always() обработчики на одном запросе, а также назначать эти обработчики после завершения запроса. Если запрос уже завершен, обработчик вызывается немедленно.

// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.get( "example.php", function() {
  alert( "success" );
})
  .done(function() {
    alert( "second success" );
  })
  .fail(function() {
    alert( "error" );
  })
  .always(function() {
    alert( "finished" );
  });
 
// Perform other work here ...
 
// Set another completion function for the request above
jqxhr.always(function() {
  alert( "second finished" );
});

Замечание о устаревании

Обработчики jqXHR.success(), jqXHR.error(), и jqXHR.complete() удалены в jQuery 3.0. Вы можете использовать jqXHR.done(), jqXHR.fail(), и jqXHR.always() вместо них.

Дополнительные замечания:

  • Из-за ограничений безопасности браузера большинство запросов "Ajax" подчиняются политике одного происхождения; запрос не может успешно извлечь данные с другого домена, поддомена, порта или протокола.
  • Если запрос с jQuery.get() возвращает код ошибки, запрос будет молча провален, если скрипт не вызвал глобальное событие ajaxError. В качестве альтернативы, начиная с jQuery 1.5, метод .error() объекта jqXHR , возвращаемого jQuery.get(), также доступен для обработки ошибок.
  • Запросы script и JSONP не ограничены политикой одного происхождения.

Примеры:

Запрос страницы test.php, но игнорирование результатов.

$.get( "test.php" );

Запрос страницы test.php и отправка дополнительных данных (при этом результаты игнорируются).

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

Передача массивов данных на сервер (при этом результаты игнорируются).

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

Вывод результатов запроса test.php (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 );
  });

Получение содержимого страницы test.php, которое возвращается в формате 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" );

Получение другой страницы на том же домене. Вывод в консоль как возвращенных данных, так и типа данных.

// If this was sent on https://api.jquery.com/jQuery.get/ you will
// get the response result of https://api.jquery.com/jQuery.ajax/
$.get( "/jQuery.ajax/", function( data ) {
  console.log( typeof data ); // string
  console.log( data ); // HTML content of the jQuery.ajax page
});

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquery.com/jQuery.get

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API