JavaScript. Подробное руководство, 6-е издание, стр. 319

<b>&quot;text”</b>

Вернуть ответ сервера как простой текст, без дополнительной обработки.

<b>&quot;html&quot;</b>

Этот тип обрабатывается так же, как тип "text": ответ возвращается как простой текст. Этот тип используется методом

<b>load()</b>
, который вставляет текст ответа в документ.

<b>&quot;xml&quot;</b>

Предполагает, что URL-адрес ссылается на данные в формате XML, и для их получения вместо свойства

<b>responseText</b>
объекта
<b>XMLHttpRequest</b>
библиотека jQuery использует свойство
<b>responseXML</b>
. Функции обратного вызова передается не строка с текстом документа, а объект
<b>Document</b>
, представляющий XML-документ.

<b>&quot;script&quot;</b>

Предполагает, что URL-адрес ссылается на файл со сценарием на языке JavaScript, и перед передачей функции обратного вызова текст ответа выполняется как сценарий. Этот тип используется функцией

<b>jQuery.getScript().</b>
Когда указывается тип "script", библиотека будет выполнять междоменные запросы с помощью элемента
<b>&lt;script&gt;</b>
вместо объекта
<b>XMLHttpRequest</b>
.

<b>&quot;json&quot;</b>

Предполагает, что URL-адрес ссылается на файл с данными в формате JSON. Функции обратного вызова в этом случае передается объект, полученный в результате разбора содержимого ответа с помощью функции

<b>jQuery.parseJSON()</b>
(раздел 19.7). Этот тип используется функцией
<b>jQuery.getJS0N().</b>
Если указан тип "json" и строка URL или данных содержит "=?", тип преобразуется в "jsonp".

<b>&quot;jsonp&quot;</b>

Предполагает, что URL-адрес ссылается на серверный сценарий, поддерживающий протокол JSONP передачи данных в формате JSON в виде аргумента указанной функции на стороне клиента. (Подробнее о формате JSONP рассказывается в разделе 18.2.) Когда указывается этот тип, функции обратного вызова передается разобранный объект. Поскольку JSONP-запросы могут выполняться с помощью элементов

<b>&lt;script&gt;,</b>
этот тип можно использовать для выполнения междоменных запросов, подобно типу "script”. При использовании этого типа строка URL или данных обычно должна включать параметр вида
<b>&quot;&amp;jsonp=</b>
?" или
<b>&quot;&amp;callback=?&quot;.</b>
Библиотека jQuery заменит знак вопроса именем автоматически созданной функции обратного вызова. (Обратите внимание на параметры
<b>jsonp</b>
и
<b>jsonpCallback</b>
, описываемые в разделе 19.6.3.3, позволяющие определить альтернативные варианты.)

Если при вызове

<b>jQuery.get(), jQuery.post()</b>
или
<b>jQuery.ajax()</b>
не указан ни один из этих типов, библиотека jQuery проверит заголовок «Content-Type» HTTP-ответа. Если этот заголовок включает подстроку «xml», функции обратного вызова будет передан XML-документ. Иначе, если заголовок включает подстроку «json», ответ будет разобран, как данные в формате JSON, и полученный объект будет передан функции обратного вызова. Иначе, если заголовок включает подстроку «JavaScript», ответ будет выполнен как сценарий. Иначе данные будут интерпретироваться как простой текст.

19.6.3. Функция jQuery.ajax()

Все утилиты поддержки архитектуры Ajax в библиотеке jQuery в конечном итоге вызывают

<b>jQuery.ajax</b>
() - самую сложную функцию во всей библиотеке. Функция
<b>jQuery. ajax()</b>
принимает всего один аргумент: объект с параметрами, свойства которого определяют детали, касающиеся выполнения Ajax-запроса. Вызов
<b>jQuery.getScript(url,callback),</b>
например, эквивалентен следующему вызову функции
<b>jQuery.ajax():</b>

<b>jQuery.ajax({ </b>

<b>  type: &quot;GET”, </b>

<b>// Метод НТТР-запроса.</b>

<b>  url: url, // URL-адрес запрашиваемых данных.</b>

<b>  data: null, // Не добавлять дополнительные данные в URL.</b>

<b>  dataType: &quot;script&quot;  // Выполнить ответ как сценарий.</b>

<b>  success: callback // Вызвать эту функцию по завершении.</b>

<b>});</b>

Эти пять фундаментальных параметров можно также установить при использовании функций

<b>jQuery.get()</b>
и
<b>jQuery.post()</b>
. Однако при непосредственном использовании
<b>jQuery.ajax()</b>
имеется возможность указать большое количество других параметров. Все параметры (включая пять основных, представленных выше) детально описываются ниже.

Прежде чем погрузиться в описание параметров, обратите внимание, что имеется возможность определить значения по умолчанию любых из этих параметров, передав объект с параметрами функции

<b>jQuery. ajaxSetup()</b>
:

<b>jQuery.ajaxSetup({</b>

<b>  timeout: 2000, // Прерывать все Ajax-запросы через 2 секунды </b>

<b>  cache: false // Игнорировать кэш броузера, добавляя время в URL</b>

<b>}):</b>

После выполнения программного кода, приведенного выше, указанные параметры timeout и cache будут действовать для всех Ajax-запросов (включая высокоуровневые утилиты, такие как

<b>jQuery.get()</b>
и
<b>load()</b>
), при вызове которых не указываются значения этих параметров.

В процессе знакомства с многочисленными параметрами и особенностями функций обратного вызова в следующих разделах может оказаться полезным еще раз ознакомиться с информацией во врезках, касающейся кодов состояния Ajax-запросов и типов данных в разделах 19.6.1 и 19.6.2.3.

Поддержка Ajax в версии jQuery 1.5