jQuery.get( url [, data ] [, success ] [, dataType ] )Возвращает: jqXHR
Описание: Загрузка данных с сервера с помощью запроса HTTP GET.
-
версия добавлена: 1.0jQuery.get( url [, data ] [, success ] [, dataType ] )
- urlТип: СтрокаСтрока, содержащая URL, к которому отправляется запрос.
- dataОбъект или строка, отправляемые на сервер с запросом.
- successОбработчик, который выполняется при успешном запросе. Требуется, если
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
});