Objetos XMLHTTP y sus métodos————————————————————————
MSXML proporciona el objeto Microsoft.XMLHTTP, que puede completar la conversión y enviar tareas de paquetes de datos a objetos de solicitud.
La declaración para crear un objeto XMLHTTP es la siguiente:
Establecer objXML = CreateObject("Msxml2.XMLHTTP") o
Establecer objXML = CreateObject ("Microsoft.XMLHTTP")
' O, para la versión 3.0 de XMLHTTP, utilice:
' Establecer xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
Una vez creado el objeto, llame al método Open para inicializar el objeto Solicitud. El formato de sintaxis es:
poster.open método http, URL, asíncrono, ID de usuario, contraseña
El método Open contiene 5 parámetros, los primeros tres son necesarios y los dos últimos son opcionales (proporcionados cuando el servidor requiere autenticación). El significado de los parámetros es el siguiente:
método http: método de comunicación HTTP, como GET o POST
url: la dirección URL del servidor que recibe datos XML. Generalmente el programa ASP o CGI se especifica en la URL
asíncrono: un indicador booleano que indica si la solicitud es asíncrona. Si es el modo de comunicación asíncrono (verdadero), el cliente no espera la respuesta del servidor; si es el modo síncrono (falso), el cliente tiene que esperar hasta que el servidor devuelva un mensaje antes de realizar otras operaciones.
userID ID de usuario utilizado para la autenticación del servidor
contraseña Contraseña de usuario, utilizada para la autenticación del servidor
Después de que el método Enviar del objeto XMLHTTP inicialice el objeto Solicitar con el método Abrir, llame al método Enviar para enviar los datos XML:
poster.enviar datos XML
El tipo de parámetro del método Enviar es Variante, que puede ser una cadena, un árbol DOM o cualquier flujo de datos. Hay dos formas de enviar datos: sincrónica y asincrónica. En modo asíncrono, una vez que se envía el paquete de datos, el proceso de envío finaliza y el cliente realiza otras operaciones. En modo síncrono, el cliente espera hasta que el servidor devuelva un mensaje de confirmación antes de finalizar el proceso de envío.
El atributo readyState en el objeto XMLHTTP puede reflejar el progreso del servidor en el procesamiento de la solicitud. El programa cliente puede configurar el método de procesamiento de eventos correspondiente en función de esta información de estado. Los valores de los atributos y sus significados se muestran en la siguiente tabla:
Descripción del valor
0 Se ha creado el objeto Respuesta, pero el proceso de carga del documento XML aún no ha finalizado.
1 El documento XML ha sido cargado.
2 El documento XML se ha cargado y se está procesando.
3 Se ha analizado parte del documento XML.
4 El documento ha sido analizado y el cliente puede aceptar el mensaje de respuesta. El cliente procesa la información de respuesta. Después de recibir el mensaje de respuesta, el cliente realiza un procesamiento simple, que básicamente completa un ciclo de interacción entre C/S. El cliente recibe la respuesta a través de las propiedades del objeto XMLHTTP:
● ResponseTxt: devuelve el mensaje como una cadena de texto;
● ResponseXML: trata el mensaje de respuesta como un documento XML, utilizado cuando el mensaje de respuesta del servidor contiene datos XML;
● ResponseStream: trata el mensaje devuelto como un objeto Stream.
El siguiente archivo xml se genera dinámicamente y finalmente se envía usando xmlHTTP. Este es el contenido del script JavaScript del cliente. Por supuesto, también puede escribirlo en el servidor, pero debe cambiar algunas cosas en consecuencia: (Solo como referencia. , entender su uso)
var xmlDoc=new ActiveXObject("MSXML2.DOMDocument");
bandera=xmlDoc.loadXML("");
nuevoNodo =xmlDoc.createElement("codificación")
MarkNode=xmlDoc.documentElement.appendChild(newNode);
nuevoNodo =xmlDoc.createElement("MarcaInicio")
newNode.text=Marca de inicio;
MarkNode.appendChild(nuevoNodo)
nuevoNodo =xmlDoc.createElement("EndMark")
newNode.text=MarcaFinal;
MarkNode.appendChild(nuevoNodo)
nuevoNodo =xmlDoc.createElement("Fecha")
DateNode=xmlDoc.documentElement.appendChild(newNode);
newNode =xmlDoc.createElement("Fecha de inicio");
newNode.text=Fecha de inicio;
DateNode.appendChild(nuevoNodo)
nuevoNodo =xmlDoc.createElement("FechaFinal")
newNode.text=Fecha de finalización;
DateNode.appendChild(nuevoNodo);
nuevoNodo =xmlDoc.createElement("Cantidad")
SLNodo =xmlDoc.documentElement.appendChild(nuevoNodo);
nuevoNodo =xmlDoc.createElement("InicioSL")
newNode.text=IniciarShuL
SLNode.appendChild(nuevoNodo)
nuevoNodo =xmlDoc.createElement("EndSL");
newNode.text=FinShuL
SLNode.appendChild(nuevoNodo);
newNode =xmlDoc.createElement("precio unitario")
DJNodo =xmlDoc.documentElement.appendChild(nuevoNodo)
nuevoNodo =xmlDoc.createElement("IniciarDJ")
newNode.text=IniciarDanJ;
DJNode.appendChild(nuevoNodo);
nuevoNodo =xmlDoc.createElement("EndDJ")
newNode.text=EndDanJ;
DJNode.appendChild(nuevoNodo);
nuevoNodo =xmlDoc.createElement("cantidad")
JENode =xmlDoc.documentElement.appendChild(nuevoNodo)
nuevoNodo =xmlDoc.createElement("IniciarJE")
newNode.text=IniciarJinE
JENode.appendChild(nuevoNodo)
nuevoNodo =xmlDoc.createElement("EndJE")
newNode.text=FinJinE
JENode.appendChild(nuevoNodo)
newNode =xmlDoc.createElement("código de almacén")
newNode.text=CK;
xmlDoc.documentElement.appendChild(nuevoNodo)
newNode =xmlDoc.createElement("número de ticket")
newNode.text=RKPH;
xmlDoc.documentElement.appendChild(nuevoNodo)
newNode =xmlDoc.createElement("código de unidad")
newNode.text=NombreDeLaCorporación;
xmlDoc.documentElement.appendChild(nuevoNodo)
nuevoNodo =xmlDoc.createElement("BiaoShi")
newNode.text=Biaoshi
xmlDoc.documentElement.appendChild(nuevoNodo)
nuevoNodo =xmlDoc.createElement("FindCate")
newNode.text=BuscarCate
xmlDoc.documentElement.appendChild(nuevoNodo)
var xh = nuevo ActiveXObject ("MSXML2.XMLHTTP")
xh.open("POST","Buscar.asp",falso)
xh.setRequestHeader("Tipo de contenido","texto/xml")
xh.setRequestHeader("Tipo de contenido","gb2312")
xh.send(xmlDoc);
El valor de texto de cada uno de mis nuevosNodos es una variable, que es el valor ingresado en el formulario de mi cliente.