Содержание:
jQuery.getJSON( url [, data ] [, success ] )Возвращает: jqXHR
Описание: Загружает JSON данные с сервера при помощи GET HTTP запроса
-
version added: 1.0jQuery.getJSON( url [, data ] [, success ] )
-
urlТип: StringСтрока с URL адресом на который будет отправлен запрос.
-
dataТип: PlainObject или StringОбъект или строка, которые будут отправлены на сервер вместе с запросом.
-
successФункция обратного вызова, которая выполняется если запрос успешно завершается.
-
Это сокращенная Ajax функция, которая эквивалентна следующему коду:
1
2
3
4
5
6
|
|
Данные отправляемые на сервере передаются в URL строке как GET параметры. Если значением параметра data
является объект (не строка), то он конвертируется в строку (с предварительным url-encode кодированием значений) перед добвлением к URL адресу.
В большинстве случаев, обработчик success указывается:
1
2
3
4
5
6
7
8
9
10
11
|
|
Этот пример, конечно, зависит от структуры запрошенного JSON файла:
1
2
3
4
5
|
|
Используя такую структуру, в примере происходит перебор запрошенных данных, строится неупорядоченный список и добавляет его к body
.
В функцию обратного вызова success
передаются возвращенные данные с сервера, которые обычно представляют из себя JavaScript объект или массив, соотвествующий формату JSON, - полученные при помощи метода $.parseJSON()
. Также передается текстовый статус ответа.
Начиная с jQuery 1.5, функция success
принимает объект "jqXHR" object (в jQuery 1.4, она принимает объект XMLHttpRequest
). Однако, так как JSONP и кросс-доменные запросы не используют XHR, то в этом случае параметры jqXHR
и textStatus
не будут переданы в функцию success.
Важно: начиная с jQuery 1.4, если JSON файл содержит синтаксические ошибки, для запроса просто вызовется обработчик ошибки (если он установлен). По этой причине, избегайте руного редактирования JSON данных. JSON представляет из себя формат обмена данных с правилами синтаксиса более жесткими чем правила определения для JavaScript объектов. Например, все строки представленные в JSON, являются ли они свойством или значением, должны быть заключены в двойные кавычки. Уточните информацию о формате JSON по ссылке http://json.org/.
JSONP
Если в URL адрес включена строка "callback=?" (или подобные, как это определяет серверное API), запрос обрабатывается как JSONP. Это более подробно описано на странице $.ajax()
в описании параметра jsonp
.
The jqXHR Object
Начиная с jQuery 1.5, все Ajax методы jQuery возвращают объект XMLHTTPRequest
. Объект jQuery XHR или "jqXHR," возвращается $.get()
реализацией интерфейса Promise и предоставляет все его свойства, меоды и повередени Promise в целом (смотрите Deferred object для справки). Методы jqXHR.done()
(успех), jqXHR.fail()
(ошибка), and jqXHR.always()
(для гарантированного обработчика, не зависимо от успеха или ошибки ответа, добавлен в версии jQuery 1.6) принимают функцию, которая вызывается когда запрос завершается. Аргументы этих функция описаны на странице jqXHR Object в разделе $.ajax()
справки.
Интерфейс Promise также разрешает Ajax методам, включая $.get()
, вызывать неоднократно по цепочке методы .done()
, .fail()
и .always()
для одного запроса и даже назначать его обработчики, даже после того как запрос был завершен. Если запрос уже выполнен, то функция обратного вызова выполняется немедленно.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
|
Уведомление об устаревании
Функции обратного вызова jqXHR.success()
, jqXHR.error()
, and jqXHR.complete()
удалены в jQuery 3.0. Используйте методы jqXHR.done()
, jqXHR.fail()
и jqXHR.always()
вместо них.
Дополнительные примечания:
- Из-за ограничений безопасности браузера большинство "Ajax" запросов подпадают под действие политики того же происхождения, запросы не могут быть выполнены к другим доменам, поддоменам, порту или протоколу.
- Запросы скриптов и JSONP запросы не подвергаются ограничениям политики того же происхождения (Same Origin Policy).