Необязательные аргументы user и pass определяют имя пользователя и пароль для НТТР-запроса.
void overrideMimeType(string mime)
Этот метод позволяет указать, что ответ сервера должен интерпретироваться в соответствии с указанным MIME-типом mime (и параметром charset, если он указан в определении типа mime), без учета значения заголовка Content-Type в ответе.
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 дополняет этот список множеством обработчиков событий хода выполнения запроса, которые намного проще в использовании. Зарегистрировать обработчики можно с помощью свойств, перечисленных ниже, или с помощью методов интерфейса EventTarget. События, возникающие в объекте XMLHttpRequest, всегда доставляются самому объекту XMLHttpRequest. Они не всплывают и не предусматривают действий по умолчанию, которые можно было бы отменить. Обработчикам событий «readystatechange» передается объект Event, а обработчикам остальных событий - объект ProgressEvent.
См. также описание свойства upload и XMLHttpRequestUpload, где приводится список событий, которые можно использовать для слежения за ходом выгрузки тела НТТР-запроса.
onabort
Вызывается при прерывании запроса.
onerror
Вызывается в случае завершения запроса по ошибке. Обратите внимание, что HTTP-коды состояния, такие как 404, не считаются ошибкой, поскольку сам ответ получен успешно. Однако это событие может породить отрицательный ответ сервера DNS или бесконечный цикл переадресаций.
onload
Вызывается при успешном выполнении запроса.
onloadend