Если методу 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
Вызывается в случае успешного или неудачного завершения запроса, после событий «load», «abort», «error» и «timeout».
onloadstart
Вызывается с началом выполнения запроса.
onprogress
Вызывается периодически (примерно раз в 50 миллисекунд) в ходе загрузки тела ответа.
onreadystatechange
Вызывается при изменении значения свойства
readyState
. Наиболее важен для обработки ситуации завершения
запроса.
ontimeout
Вызывается, если истекло время ожидания, определяемое свойством timeout, а ответ так и не был принят.
XMLHttpRequestUpload
(EventTarget)
Объект
XMLHttpRequestUpload
определяет множество свойств регистрации обработчиков событий для слежения за ходом выгрузки тела HTTP-запроса. В броузерах, реализующих положения спецификации «XMLHttpRequest Level 2», каждый объект
XMLHttpRequest
имеет свойство
upload
, ссылающееся на объект этого типа. Чтобы реализовать слежение за ходом выполнения операции выгрузки, достаточно просто установить соответствующие обработчики событий с помощью следующих свойств или методов интерфейса
EventTarget
. Обратите внимание, что перечисленные ниже свойства регистрации обработчиков событий для слежения за процессом выгрузки в точности соответствуют свойствам регистрации обработчиков событий для слежения за процессом загрузки, которые определяются самим объектом
XMLHttpRequest
, за исключением свойства
onreadystatechange
.
Обработчики событий
onabort
Вызывается при прерывании выгрузки.
onerror
Вызывается, когда в процессе выгрузки возникает сетевая ошибка.
onload
Вызывается в случае успешного завершения выгрузки
onloadend
Вызывается в случае успешного или неудачного завершения выгрузки. Событие «loadend» всегда следует за событиями «load», «abort», «error» и «timeout».
onloadstart
Вызывается с началом выгрузки.
onprogress
Вызывается периодически (примерно раз в 50 миллисекунд) в ходе выгрузки.
ontimeout
Вызывается, если истекло время ожидания, определяемое свойством