Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

1.1 Объект XMLHttpRequest




Объект XMLHttpRequest дает возможность отправлять асинхронные HTTP-запросы из кода JavaScript серверу, принимать от него ответы и обновлять отдельные части Web-страницы, не прерывая работу пользователя. Имеет следующие методы:

· abort() – отменяет любые сетевые действия;

· getAllResponseHeaders() – возвращает все HTTP-заголовки ответа сервера в виде строки (кроме Set-Cookie);

· getResponseHeader(header) – возвращает указанный HTTP-заголовок ответа сервера в виде строки (кроме Set-Cookie);

· open(method, URL [, async = true [, username = null [, password = null]]]) – инициализирует параметры запроса, где:

§ method – один из методов обмена данными с сервером: наиболее часто используются GET и POST, но разрешены также методы HEAD, TRACE, PUT или DELETE;

§ URL – абсолютный или относительный URL-адрес сервера (кроме http: // протокола могут быть также использованы протоколы ftp: // и file: //);

§ async (необязательнлый параметр) – значение true означает асинхронный режим работы с сервером: скрипт, послав запрос серверу, продолжает свою работу (значение по умолчанию), значение false означает синхронный режим работы с сервером: скрипт, послав запрос серверу, приостанавливает свою работу, ожидая ответа от сервера;

§ username (необязательнлый параметр) – имя пользователя для аутентификации, если параметр равен null или " " и сайт требует аутентификации, то появляется окно login;

§ password (необязательнлый параметр) – пароль пользователя для аутентификации, если равен Null или " ", то игнорируется;

· overrideMimeType(mime) – задает для заголовка ответа Content-Type значение mime;

· send([data=null]) – выполняет запрос (аргумент игнорируется для методов GET или HEAD);

· setRequestHeader(name, value) – добавляет заголовок запроса name со значением value, например:

xmlhttp. setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

и свойства:

· onreadystatechange – используется для регистрации обработчика события readystatechange, возникающим в асинхронном режиме при изменении состояния запроса;

· readyState – возвращает состояние запроса, значение может быть задано числом или константой:

§ 0 (UNSENT) – объект создан;

§ 1 (OPENED) – метод open() успешно вызван. В течение этого состояния с помощью метода setRequestHeader() могут быть установлены HTTP-заголовки запроса и выполнен с использованием метода send() запрос;

§ 2 (HEADERS_RECEIVED) – все перенаправления (англ. redirect) сделаны (если они есть) и получены HTTP-заголовки ответа;

§ 3 (LOADING) – получено тело (содержимое) ответа;

§ 4 (DONE) – обмен данными завершен или произошла ошибкм.

· response – возвращает тело ответа (тип ответа указан в свойстве responseType);

· responseText – возвращает ответ сервера в виде строки;

· responseType [ = value ] – устанавливает или возвращает тип ответа (по умолчанию – пустая спрока):

§ " arraybuffer";

§ " blob";

§ " document" (игнорируется если значением JavaScript global environment является worker environment);

§ " json";

§ " text";

· responseXML – возвращает ответ сервера в формате XML;

· status – возвращает HTTP-код состояния запроса (запросы по протоколам ftp: // и file: // не возвращают статуса, поэтому нормальным для них является status=0);

· statusText – возвращает сообщение о состоянии запроса;

· timeout – указывает или возвращает время в миллисекндах. Если значение не равно 0 – проверяет, не вышло ли время ожиданич ответа за указанное значение. Если вышло – вызывается исключение (значение по умолчанию 0);

· upload – возвращает ассоциированный объект XMLHttpRequestUpload, который может быть использован при передаче файла на сервер для получения информации о передаче;

· withCredentials – указывает, надо ли передавать учетные данные пользователя (credentials).

Во время функционирования объекта XMLHttpRequest при изменении его состояния (которое указывается в свойстве readyState) возникает событие onreadystatechange, которое может быть использовано для определения текущего состояния объекта.
Кроме того современная спецификация предусматривает следующие события оазвития (progress events), т. е. возникающие по ходу обработки запроса:

· loadstart – запрос начат;

· progress – браузер получил очередной пакет данных, можно прочитать текущие полученные данные в responseText;

· abort – запрос был отменен вызовом меторда abort();

· error – произошла ошибка;

· load – запрос был успешно (без ошибок) завершен;

· timeout – запрос был прекращен по таймауту;

· loadend – запрос был завершен (успешно или нет).

Для создания экземпляров объекта XMLHttpRequest при использовании браузеров, которые его поддерживают – все бразеры, за исключением IE5 и IE6, необходимо использовать конструктор XMLHttpRequest(), а для браузеров Internet Explorer версий 5 и 6 – конструктор ActiveXObject(" Microsoft. XMLHttp" ). Поэтому для создания объекта xhr, который имеет все методы и свойства объекта XMLHttpRequest, можно предложить следующий код:

var xhr;
if(window. XMLHttpRequest) {
xhr=new XMLHttpRequest();
} else {
xhr=new ActiveXObject(" Microsoft. XMLHTTP" );
}

Создание объекта xhr, использование его методов, свойств и обработчиков событий приведено в примерах №1, №1a и №1b, в которых осуществлен прием текстовых данных из локального сервера, а также в примере №2, в котором в процессе тестирования выполнена передача серверу имени тестируемого, прием тестов от сервера и передача ответов серверу.

Оглавление

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...