Objets XMLHTTP et leurs méthodes————————————————————————
MSXML fournit l'objet Microsoft.XMLHTTP, qui peut effectuer la conversion et l'envoi des tâches des paquets de données vers les objets Request.
L'instruction pour créer un objet XMLHTTP est la suivante :
Définir objXML = CreateObject("Msxml2.XMLHTTP") ou
Définir objXML = CreateObject("Microsoft.XMLHTTP")
' Ou, pour la version 3.0 de XMLHTTP, utilisez :
' Définir xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
Une fois l'objet créé, appelez la méthode Open pour initialiser l'objet Request. Le format de syntaxe est :
poster.open méthode http, url, async, userID, mot de passe
La méthode Open contient 5 paramètres, les trois premiers sont nécessaires et les deux derniers sont facultatifs (fournis lorsque le serveur requiert une authentification). La signification des paramètres est la suivante :
Méthode http : méthode de communication HTTP, telle que GET ou POST
url : l'adresse URL du serveur qui reçoit les données XML. Habituellement, le programme ASP ou CGI est spécifié dans l'URL
async : un indicateur booléen indiquant si la requête est asynchrone. S'il s'agit d'un mode de communication asynchrone (vrai), le client n'attend pas la réponse du serveur ; s'il s'agit d'un mode de communication synchrone (faux), le client doit attendre que le serveur renvoie un message avant d'effectuer d'autres opérations.
userID ID utilisateur utilisé pour l'authentification du serveur
password Mot de passe utilisateur, utilisé pour l'authentification du serveur
Une fois que la méthode Send de l'objet XMLHTTP a initialisé l'objet Request avec la méthode Open, appelez la méthode Send pour envoyer les données XML :
poster.send données XML
Le type de paramètre de la méthode Send est Variant, qui peut être une chaîne, une arborescence DOM ou n'importe quel flux de données. Il existe deux manières d'envoyer des données : synchrone et asynchrone. En mode asynchrone, une fois le paquet de données envoyé, le processus d'envoi est terminé et le client effectue d'autres opérations ; en mode synchrone, le client attend que le serveur renvoie un message de confirmation avant de terminer le processus d'envoi.
L'attribut readyState dans l'objet XMLHTTP peut refléter la progression du serveur dans le traitement de la demande. Le programme client peut définir la méthode de traitement d'événement correspondante en fonction de ces informations d'état. Les valeurs d'attribut et leurs significations sont présentées dans le tableau suivant :
Description de la valeur
0 L'objet Response a été créé, mais le processus de téléchargement du document XML n'est pas encore terminé.
1 Le document XML a été chargé
2 Le document XML a été chargé et est en cours de traitement.
3 Une partie du document XML a été analysée
4 Le document a été analysé et le client peut accepter le message de retour. Le client traite les informations de réponse, après avoir reçu le message de retour, le client effectue un traitement simple, qui termine essentiellement un cycle d'interaction entre C/S. Le client reçoit la réponse via les propriétés de l'objet XMLHTTP :
● ResponseTxt : renvoie le message sous forme de chaîne de texte ;
● ResponseXML : traite le message de retour comme un document XML, utilisé lorsque le message de réponse du serveur contient des données XML ;
● ResponseStream : traite le message renvoyé comme un objet Stream.
Le fichier XML suivant est généré dynamiquement et finalement envoyé à l'aide de xmlHTTP. Il s'agit du contenu du script JavaScript client. Bien sûr, vous pouvez également l'écrire sur le serveur, mais vous devez modifier certaines choses en conséquence : (Pour votre référence uniquement. , comprenez son utilisation)
var xmlDoc=new ActiveXObject("MSXML2.DOMDocument");
flag=xmlDoc.loadXML("");
newNode =xmlDoc.createElement("encodage")
MarkNode=xmlDoc.documentElement.appendChild(newNode);
newNode =xmlDoc.createElement("StartMark")
newNode.text=Marque de démarrage ;
MarkNode.appendChild (nouveau nœud)
newNode =xmlDoc.createElement("EndMark")
newNode.text=EndMark;
MarkNode.appendChild (nouveau nœud)
newNode =xmlDoc.createElement("Date")
DateNode=xmlDoc.documentElement.appendChild(newNode);
newNode =xmlDoc.createElement("StartDate");
newNode.text=Date de début ;
DateNode.appendChild(nouveauNode)
newNode =xmlDoc.createElement("EndDate")
newNode.text=Date de fin ;
DateNode.appendChild(newNode);
newNode =xmlDoc.createElement("Quantité")
SLNode =xmlDoc.documentElement.appendChild(newNode);
newNode =xmlDoc.createElement("StartSL")
newNode.text=DémarrerShuL
SLNode.appendChild (nouveau nœud)
newNode =xmlDoc.createElement("EndSL");
newNode.text=FinShuL
SLNode.appendChild(newNode);
newNode =xmlDoc.createElement("prix unitaire")
DJNode =xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("StartDJ")
newNode.text=StartDanJ;
DJNode.appendChild(newNode);
newNode =xmlDoc.createElement("EndDJ")
newNode.text=EndDanJ;
DJNode.appendChild(newNode);
newNode =xmlDoc.createElement("montant")
JENode =xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("StartJE")
newNode.text=DémarrerJinE
JENode.appendChild(nouveauNoeud)
newNode =xmlDoc.createElement("EndJE")
newNode.text=FinJinE
JENode.appendChild(nouveauNoeud)
newNode =xmlDoc.createElement("code d'entrepôt")
newNode.text=CK;
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("numéro de ticket")
newNode.text=RKPH;
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("code unité")
newNode.text=NomCorp ;
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("BiaoShi")
newNode.text=Biaoshi
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("FindCate")
newNode.text=FindCate
xmlDoc.documentElement.appendChild(newNode)
var xh =nouveau ActiveXObject("MSXML2.XMLHTTP")
xh.open("POST","Find.asp",false)
xh.setRequestHeader("Content-Type", "text/xml")
xh.setRequestHeader("Content-Type", "gb2312")
xh.send(xmlDoc);
La valeur texte de chacun de mes newNode est une variable, qui est la valeur saisie dans mon formulaire client.