Ajax был очень популярен в последние годы, и суть Ajax — это XMLHttpRequest, который заключается в использовании объектов XMLHttpRequest на стороне клиента. По сравнению с Ajax, XMLHTTP на стороне сервера использует объект XMLHttpRequest на стороне сервера. Хоть и неудобнее использовать асинхронные запросы на стороне сервера, как компонент, который может отправлять HTTP-запросы на стороне сервера, узнать об этом не вредно.
Здесь я говорю об использовании XMLHttpRequest на стороне сервера в среде ASP и использовании JScript в качестве языка демонстрационного кода. Поэтому вам необходимо понимать ASP и JScript.
Серверный XMLHTTP обычно используется для получения веб-страниц или другого контента с удаленных хостов. Системы агрегирования новостей обычно используют серверные объекты XMLHTTP для получения содержимого агрегируемого канала, а затем используют объекты XMLDOM для анализа содержимого. подача и получение названий новостей, автор, содержание и другая информация затем сохраняются в базе данных, а затем новости из нескольких источников данных отображаются вместе. Catch shrimp - это такой агрегатор новостей, но на ASP он не написан :)
В ASP мы можем использовать следующий код для создания объекта ServerXMLHTTP, и этот объект является основой для всех операций, которые мы выполняем на стороне сервера.
Скопируйте код кода следующим образом:
вар xmlhttp = новый ActiveXObject(MSXML2.ServerXMLHTTP.5.0);
Во-первых, давайте взглянем на наиболее полезные методы объекта ServerXMLHTTP:
1. abort Этот метод используется для отмены запросов XMLHTTP. Если объект XMLHTTP отправляет запрос асинхронно и запрос по-прежнему не возвращается через определенное время, вы можете использовать этот метод для отмены запроса.
2. getAllResponseHeaders Возвращаемое значение этого метода представляет собой строку, которая эквивалентна заголовку HTTP-запроса без метода запроса, URI и информации о версии протокола.
3. getResponseHeader Этот метод используется для получения указанной информации заголовка. Более полезным является получение Content-Type, Referer и т. д. возвращаемых данных.
4. open инициализирует запрос, используя указанный метод запроса, URI, метод синхронизации, информацию аутентификации и т. д.
5. send отправляет HTTP-запрос и ожидает получения данных ответа. Обратите внимание, что если запрос отправляется синхронно, метод send не вернет результат сразу после вызова, а будет ждать, пока запрос не будет завершен. запросив асинхронный метод, он немедленно вернется. Кроме того, метод отправки имеет необязательное тело параметра, которое представляет отправляемые данные, что более полезно при использовании метода POST.
6. setTimeout устанавливает четыре таймаута объекта ServerXMLHTTP: разрешение доменного имени, подключение к серверу, отправка данных и получение ответов. Вы можете управлять объектом ServerXMLHTTP, установив соответствующий период ожидания, чтобы ServerXMLHTTP не возвращался вовремя и программа не переставала отвечать.
7. setRequestHeader устанавливает заголовок запроса. В клиентском XMLHttpRequest он обычно используется для установки типа данных запроса или идентификации метода запроса и т. д. Например, jquery добавит идентификатор заголовка X-Request-With. чтобы указать, что запрос исходит от объекта XMLHttpRequest. Выдается, чтобы сервер мог выполнить соответствующие действия.
8. waitForResponse При асинхронной отправке запроса вы можете использовать этот метод для управления процессом запроса. В серверных сценариях вы не можете напрямую использовать функции обратного вызова для управления асинхронными запросами, как это делает клиент, и нет соответствующей функции, позволяющей использовать программу для сна в течение определенного периода времени. Следовательно, для ожидания запроса. return, мы можем использовать этот метод для ожидания в течение определенного периода времени.
Кроме того, существуют и другие методы, такие как getOption, setOption, setProxy и т. д. Эти методы используются редко, поэтому они не будут здесь представлены. Друзья, которым нужно узнать больше, могут обратиться к MSDN.
Далее давайте посмотрим на свойства объекта ServerXMLHTTP:
1. onreadystatechange Функция обратного вызова при изменении состояния объекта XMLHTTP. Этот атрибут закладывает основу для асинхронных операций, позволяя программе узнать, завершена ли операция XMLHTTP, без запроса состояния объекта XMLHTTP.
2. Статус объекта ReadyState XMLHTTP имеет 5 значений от 0 до 4, которые соответственно представляют:
0 — не инициализирован, состояние объекта, когда он был только что создан с использованием нового ActiveXObject(MSXML.ServerXMLHTTP.5.0).
1 — Загрузка. В этот момент был вызван метод open, но метод send не использовался для отправки данных.
2 — уже загружен, метод send был вызван для отправки данных, но поток ответов еще не доступен.
3 — Взаимодействие и получение данных. На этом этапе вы можете использовать атрибуты responseBody и responseText для получения части полученных данных.
4 - Завершите запрос, все данные получены
Обычно нам нужно определить только состояние 4. В этот момент все данные загружены, и необходимые данные можно получить с помощью атрибутов responseBody или responseText.
3. Код состояния ответа HTTP, который в нормальных обстоятельствах должен быть 200. Если запрошенный ресурс не существует, будет возвращен 404. Существуют и другие коды состояния, такие как ошибка сервера 500 и т. д.
4. statusText Текст состояния ответа HTTP, используемый для описания значения кода состояния ответа, например «ОК» в 200 «ОК», «Не найден» в 404 «Не найден».
5. responseBody — это массив байтов данных ответа. Его можно использовать непосредственно в VBScript, но его необходимо преобразовать в JScript.
6. responseText получает данные ответа в текстовом виде.
7. responseXML возвращает данные ответа в виде объекта XMLDOM, что особенно полезно, когда запрошенные данные представляют собой XML-документ.
8. Объект потока ответов responseStream, этот атрибут обычно не используется.