JavaScript. Подробное руководство, 6-е издание, стр. 276
18.1. Использование объекта XMLHttpRequest
Прикладной интерфейс к протоколу HTTP в броузерах определяется в виде класса
<b>XMLHttpRequest</b><b>XMLHttpRequest</b><b>XMLHttpRequest</b>Первое, что обычно необходимо сделать при использовании этого прикладного интерфейса к протоколу HTTP, это, разумеется, создать экземпляр объекта
<b>XMLHttpRequest</b><b>var request = new XMLHttpRequest();</b>Допустимо повторно использовать уже имеющийся экземпляр объекта
<b>XMLHttpRequest</b>Корпорация включила поддержку объекта
<b>XMLHttpRequest</b><b>XMLHttpRequest()</b><b>// Имитация конструктора XMLHttpRequest() в IE5 и IE6 </b><b>if (window.XMLHttpRequest === undefined) {</b><b> window.XMLHttpRequest = function() {</b><b> try {</b><b> // Использовать последнюю версию ActiveX-объекта, если доступна </b><b> return new ActiveX0bject("Msxml2.XMLHTTP.6.0 ");</b><b> }</b><b> catch (el) {</b><b> try {</b><b> // Иначе вернуться к старой версии</b><b> return new ActiveXObject("Msxml2.XMLHTTP.3.О");</b><b> }</b><b> catch(e2) {</b><b> // Если ничего не получилось - возбудить ошибку</b><b> throw new Error("XMLHttpRequest не поддерживается”);</b><b> }</b><b> }</b><b> };</b><b>}</b>HTTP-запрос состоит из четырех частей:
• метод HTTP-запроса или тип «операции»
• запрашиваемый URL-адрес
• необязательные заголовки запроса, которые могут включать информацию для аутентификации
• необязательное тело запроса
HTTP-ответ, возвращаемый сервером, состоит из трех частей:
• числовое и текстовое значение, определяющее код состояния, свидетельствующий об успехе или об ошибке
• набор заголовков ответа
• тело ответа
Первые два подраздела, следующие далее, демонстрируют, как устанавливать каждую часть HTTP-запроса и как извлекать части из HTTP-ответа. За этими ключевыми разделами следуют подразделы, освещающие более узкоспециализированные темы.
Базовая архитектура запрос/ответ протокола HTTP весьма проста в использовании. Однако на практике возникает масса сложностей: клиенты и серверы обмениваются данными в виде cookies; серверы переадресуют броузеры на другие серверы; одни ресурсы кэшируются, а другие - нет; некоторые клиенты отправляют запросы через прокси-серверы и т. д. Объект
<b>XMLHttpRequest</b>Возможность использования относительных URL-адресов в веб-страницах обычно означает, что HTML-страницы можно разрабатывать и проверять, используя локальную файловую систему, а затем перемещать их на веб-сервер без дополнительных изменений. Однако, как правило, это невозможно при использовании архитектуры Ajax на основе объекта
<b>XMLHttpRequest</b><b>XMLHttpRequest</b><b>XMLHttpRequest</b><b>XMLHttpRequest</b>18.1.1. Выполнение запроса
Следующий этап после создания объекта
<b>XMLHttpRequest</b><b>ореn()</b><b>request.open("GET". // Запрос типа HTTP GET</b><b> "data.csv"); // на получение содержимого по этому URL-адресу</b>