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, которое может быть использовано для определения текущего состояния объекта.
· loadstart – запрос начат; · progress – браузер получил очередной пакет данных, можно прочитать текущие полученные данные в responseText; · abort – запрос был отменен вызовом меторда abort(); · error – произошла ошибка; · load – запрос был успешно (без ошибок) завершен; · timeout – запрос был прекращен по таймауту; · loadend – запрос был завершен (успешно или нет). Для создания экземпляров объекта XMLHttpRequest при использовании браузеров, которые его поддерживают – все бразеры, за исключением IE5 и IE6, необходимо использовать конструктор XMLHttpRequest(), а для браузеров Internet Explorer версий 5 и 6 – конструктор ActiveXObject(" Microsoft. XMLHttp" ). Поэтому для создания объекта xhr, который имеет все методы и свойства объекта XMLHttpRequest, можно предложить следующий код: var xhr; Создание объекта xhr, использование его методов, свойств и обработчиков событий приведено в примерах №1, №1a и №1b, в которых осуществлен прием текстовых данных из локального сервера, а также в примере №2, в котором в процессе тестирования выполнена передача серверу имени тестируемого, прием тестов от сервера и передача ответов серверу. Оглавление
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|