Ajax ha sido muy popular en los últimos años y la esencia de Ajax es XMLHttpRequest, que es el uso de objetos XMLHttpRequest del lado del cliente. En comparación con Ajax, XMLHTTP del lado del servidor utiliza el objeto XMLHttpRequest en el lado del servidor. Aunque es más inconveniente utilizar solicitudes asincrónicas en el lado del servidor, como componente que puede enviar solicitudes HTTP en el lado del servidor, no hay nada de malo en conocerlo.
Aquí, estoy hablando del uso de XMLHttpRequest del lado del servidor en un entorno ASP y del uso de JScript como lenguaje para el código de demostración. Por lo tanto, es necesario comprender ASP y JScript.
XMLHTTP del lado del servidor se usa generalmente para obtener páginas web u otro contenido de hosts remotos. Los sistemas de agregación de noticias generalmente usan objetos XMLHTTP del lado del servidor para obtener el contenido del feed que se agregará y luego usan objetos XMLDOM para analizar el contenido. alimenta y recupera los títulos de las noticias, el autor, el contenido y otra información luego se almacena en la base de datos y luego las noticias de varias fuentes de datos se muestran juntas. Catch Shrimp es un agregador de noticias, pero no está escrito en ASP :)
En ASP, podemos usar el siguiente código para crear un objeto ServerXMLHTTP, y este objeto es la base de todas las operaciones que realizamos en el lado del servidor.
Copie el código de código de la siguiente manera:
var xmlhttp = nuevo ActiveXObject(MSXML2.ServerXMLHTTP.5.0);
Primero, echemos un vistazo a los métodos más útiles del objeto ServerXMLHTTP:
1. abortar Este método se utiliza para cancelar solicitudes XMLHTTP. Si el objeto XMLHTTP envía una solicitud de forma asincrónica, si la solicitud aún no regresa después de un cierto tiempo, puede usar este método para cancelar la solicitud.
2. getAllResponseHeaders El valor de retorno de este método es una cadena, que es equivalente al encabezado de la solicitud HTTP sin el método de solicitud, el URI ni la información de la versión del protocolo.
3. getResponseHeader Este método se utiliza para obtener la información del encabezado especificado. El más útil es obtener el tipo de contenido, el referente, etc. de los datos devueltos.
4. open inicializa una solicitud utilizando el método de solicitud especificado, URI, método de sincronización, información de autenticación, etc.
5. enviar envía una solicitud HTTP y espera a que se reciban los datos de respuesta. Tenga en cuenta que si la solicitud se envía de manera sincrónica, el método de envío no regresará inmediatamente después de ser llamado, sino que esperará hasta que se complete la solicitud. solicitando en un método asincrónico, regresará inmediatamente. Además, el método de envío tiene un cuerpo de parámetro opcional, que representa los datos a enviar, lo cual es más útil cuando se utiliza el método POST.
6. setTimeout establece los cuatro tiempos de espera del objeto ServerXMLHTTP, que son: resolución de nombre de dominio, conexión al servidor, envío de datos y recepción de respuestas. Puede controlar el objeto ServerXMLHTTP estableciendo el período de tiempo de espera correspondiente para evitar que ServerXMLHTTP no regrese a tiempo y provoque que el programa deje de responder.
7. setRequestHeader establece el encabezado de la solicitud. En el cliente XMLHttpRequest, generalmente se usa para establecer el tipo de datos de la solicitud o identificar el método de la solicitud, etc. Por ejemplo, jquery agregará el identificador de encabezado X-Request-With. para indicar que la solicitud proviene del objeto XMLHttpRequest. Emitido para facilitar que el servidor tome las acciones correspondientes.
8. waitForResponse Al enviar una solicitud de forma asincrónica, puede utilizar este método para controlar el proceso de solicitud. En los scripts del lado del servidor, no puede usar directamente funciones de devolución de llamada para controlar solicitudes asincrónicas como lo hace el cliente, y no existe una función correspondiente para usar el programa para que duerma durante un cierto período de tiempo. regreso, podemos usar este método para esperar un cierto período de tiempo.
Además, existen otros métodos, como getOption, setOption, setProxy, etc. Estos métodos rara vez se utilizan, por lo que no se presentarán aquí. Los amigos que necesiten saber más pueden consultar MSDN.
A continuación, veamos las propiedades del objeto ServerXMLHTTP:
1. onreadystatechange La función de devolución de llamada cuando cambia el estado del objeto XMLHTTP. Este atributo sienta las bases para las operaciones asincrónicas, lo que permite al programa saber si la operación XMLHTTP se ha completado sin consultar el estado del objeto XMLHTTP.
2. El estado del objeto XMLHTTP readyState tiene 5 valores, de 0 a 4, que representan respectivamente:
0: no inicializado, el estado del objeto cuando se acaba de crear usando el nuevo ActiveXObject (MSXML.ServerXMLHTTP.5.0)
1 - Cargando En este momento, se llamó al método abierto, pero no se utilizó el método de envío para enviar datos.
2: ya cargado, se llamó al método de envío para enviar datos, pero aún no hay ningún flujo de respuesta disponible.
3 - Interactuar y recibir datos En este momento se pueden utilizar los atributos ResponseBody y ResponseText para obtener parte de los datos que se han obtenido.
4 - Complete la solicitud, se han recibido todos los datos
Normalmente, solo necesitamos determinar el estado 4. En este momento, todos los datos se han cargado y los datos requeridos se pueden obtener utilizando los atributos ResponseBody o ResponseText.
3. Estado Código de estado de respuesta HTTP, que en circunstancias normales debería ser 200. Si el recurso solicitado no existe, se devolverá 404. Hay otros códigos de estado, como el error del servidor 500, etc.
4. statusText Texto de estado de respuesta HTTP, utilizado para describir el significado del código de estado de respuesta, como OK en 200 OK, No encontrado en 404 No encontrado
5. ResponseBody es la matriz de bytes de datos de respuesta. Se puede usar directamente en VBScript, pero debe convertirse a JScript.
6. ResponseText obtiene datos de respuesta en forma de texto.
7. ResponseXML devuelve los datos de respuesta como un objeto XMLDOM, lo cual es particularmente útil cuando los datos solicitados son un documento XML.
8. Objeto de flujo de respuesta ResponseStream, este atributo no se usa comúnmente