JavaScript. Подробное руководство, 6-е издание (Флэнаган) - страница 957

в ответе.

>void send(any body)

Инициирует выполнение HTTP-запроса. Если перед этим не вызывался метод >ореn() или, обобщенно, если значение свойства >readyState не равно 1, метод >send() возбуждает исключение. В противном случае он начинает выполнение НТТР-запроса, который состоит из:

• НТТР-метода, URL-адреса и информации об авторизации (если необходимо), определенных предшествующим вызовом метода >ореn();

• заголовков запроса, если они были определены предшествующим вызовом метода >setRequestHeader();

• значения аргумента body, переданного данному методу. Аргумент body может быть строкой, объектом >Document, образующим тело запроса; он может быть опущен или иметь значение null, если запрос не имеет тела (например, GET-запросы вообще не имеют тела). Согласно спецификации XHR2 телом запроса также могут быть объекты >ArrayBuffer, Blob и FormData.

Если в предшествующем вызове метода >ореn() аргумент async имел значение false, данный метод блокируется и не возвращает управление, пока значение свойства >readyState не станет равно 4 и ответ сервера не будет получен полностью. В противном случае метод >send() немедленно возвращает управление, а ответ сервера обрабатывается асинхронно, с помощью обработчиков событий.

>void setRequestHeader(string name, string value)

Определяет HTTP-заголовок с именем name и значением value, который должен быть включен в запрос, передаваемый последующим вызовом метода >send(). Этот метод может вызываться, только когда свойство >readyState имеет значение 1, т.е. после вызова метода >ореn(), но перед вызовом метода >send().

Если заголовок с именем пате уже был определен, новым значением заголовка станет прежнее значение заголовка плюс запятая с пробелом и новое значение value, переданное методу.

Если методу open() была передана информация об авторизации, объект >XMLHttp-Request автоматически добавит заголовок Authorization. Однако этот заголовок может быть также добавлен методом >setRequestHeader().

Объект >XMLHttpRequest автоматически устанавливает заголовки «Content-Length», «Date», «Referer» и «User-Agent» и не позволяет изменять их значения. Существует еще несколько заголовков, включая заголовки, имеющие отношение к cookies, которые нельзя установить с помощью этого метода. Полный их список приводится в разделе 18.1.


Обработчики событий

Оригинальный объект >XMLHttpRequest определяет только одно свойство регистрации обработчика событий: >onreadystatechange. Спецификация XHR2 дополняет этот список множеством обработчиков событий хода выполнения запроса, которые намного проще в использовании. Зарегистрировать обработчики можно с помощью свойств, перечисленных ниже, или с помощью методов интерфейса