Ajax a été très populaire ces dernières années et l'essence d'Ajax est XMLHttpRequest, qui est l'utilisation d'objets XMLHttpRequest côté client. Par rapport à Ajax, XMLHTTP côté serveur utilise l'objet XMLHttpRequest côté serveur. Bien qu'il soit plus gênant d'utiliser des requêtes asynchrones côté serveur, en tant que composant pouvant envoyer des requêtes HTTP côté serveur, il n'y a aucun mal à en apprendre davantage.
Ici, je parle de l'utilisation de XMLHttpRequest côté serveur dans un environnement ASP et de l'utilisation de JScript comme langage pour le code de démonstration. Par conséquent, vous devez comprendre ASP et JScript.
XMLHTTP côté serveur est généralement utilisé pour obtenir des pages Web ou d'autres contenus à partir d'hôtes distants. Les systèmes d'agrégation d'actualités utilisent généralement des objets XMLHTTP côté serveur pour obtenir le contenu du flux à agréger, puis utilisent des objets XMLDOM pour analyser le contenu du flux. alimenter et récupérer les titres des actualités, l'auteur, le contenu et d'autres informations sont ensuite stockés dans la base de données, puis les actualités de plusieurs sources de données sont affichées ensemble. Catch crevettes est un tel agrégateur de nouvelles, mais il n'est pas écrit en ASP :)
Dans ASP, nous pouvons utiliser le code suivant pour créer un objet ServerXMLHTTP, et cet objet constitue la base de toutes les opérations que nous effectuons côté serveur.
Copiez le code comme suit :
var xmlhttp = new ActiveXObject(MSXML2.ServerXMLHTTP.5.0);
Tout d’abord, jetons un coup d’œil aux méthodes les plus utiles de l’objet ServerXMLHTTP :
1. abort Cette méthode est utilisée pour annuler les requêtes XMLHTTP. Si l'objet XMLHTTP envoie une requête de manière asynchrone, si la requête ne revient toujours pas après un certain temps, vous pouvez utiliser cette méthode pour annuler la requête.
2. getAllResponseHeaders La valeur de retour de cette méthode est une chaîne, qui équivaut à l'en-tête de la requête HTTP sans la méthode de requête, l'URI et les informations sur la version du protocole.
3. getResponseHeader Cette méthode est utilisée pour obtenir les informations d'en-tête spécifiées. La plus utile est d'obtenir le type de contenu, le référent, etc. des données renvoyées.
4. open initialise une requête en utilisant la méthode de requête spécifiée, l'URI, la méthode de synchronisation, les informations d'authentification, etc.
5. send envoie une requête HTTP et attend la réception des données de réponse. Notez que si la requête est envoyée de manière synchrone, la méthode send ne reviendra pas immédiatement après avoir été appelée, mais attendra que la requête soit terminée. en demandant dans une méthode asynchrone, il reviendra immédiatement. De plus, la méthode send possède un corps de paramètre facultatif, qui représente les données à envoyer, ce qui est plus utile lors de l'utilisation de la méthode POST.
6. setTimeout définit les quatre délais d'attente de l'objet ServerXMLHTTP, qui sont : la résolution du nom de domaine, la connexion au serveur, l'envoi de données et la réception de réponses. Vous pouvez contrôler l'objet ServerXMLHTTP en définissant le délai d'expiration correspondant pour empêcher ServerXMLHTTP de ne pas revenir à temps et d'empêcher le programme de répondre.
7. setRequestHeader définit l'en-tête de la requête. Dans le client XMLHttpRequest, il est généralement utilisé pour définir le type de données de la requête, ou identifier la méthode de requête, etc. Par exemple, jquery ajoutera l'identifiant d'en-tête X-Request-With. pour indiquer que la demande provient de l'objet XMLHttpRequest. Émis pour permettre au serveur de prendre les actions correspondantes.
8. waitForResponse Lors de l'envoi d'une demande de manière asynchrone, vous pouvez utiliser cette méthode pour contrôler le processus de demande. Dans les scripts côté serveur, vous ne pouvez pas utiliser directement les fonctions de rappel pour contrôler les requêtes asynchrones comme le fait le client, et il n'existe pas de fonction correspondante pour utiliser le programme pour dormir pendant un certain temps, afin d'attendre la requête. Au retour, nous pouvons utiliser cette méthode pour attendre un certain temps.
De plus, il existe d'autres méthodes, telles que getOption, setOption, setProxy, etc. Ces méthodes sont rarement utilisées, elles ne seront donc pas présentées ici. Les amis qui ont besoin d'en savoir plus peuvent se référer à MSDN.
Examinons ensuite les propriétés de l'objet ServerXMLHTTP :
1. onreadystatechange La fonction de rappel lorsque l'état de l'objet XMLHTTP change. Cet attribut établit une base pour les opérations asynchrones, permettant au programme de savoir si l'opération XMLHTTP est terminée sans interroger l'état de l'objet XMLHTTP.
2. Le statut de l'objet readyState XMLHTTP a 5 valeurs, de 0 à 4, qui représentent respectivement :
0 - Non initialisé, l'état de l'objet lorsqu'il vient d'être créé à l'aide du nouvel ActiveXObject (MSXML.ServerXMLHTTP.5.0)
1 - Chargement A ce moment, la méthode open a été appelée, mais la méthode send n'a pas été utilisée pour envoyer des données.
2 - Déjà chargée, la méthode send a été appelée pour envoyer des données, mais aucun flux de réponse n'est encore disponible.
3 - Interagir et recevoir des données À ce stade, vous pouvez utiliser les attributs ResponseBody et ResponseText pour obtenir une partie des données obtenues.
4 - Complétez la demande, toutes les données ont été reçues
Normalement, il suffit de déterminer l'état 4. À ce stade, toutes les données ont été chargées et les données requises peuvent être obtenues à l'aide des attributs ResponseBody ou ResponseText.
3. status Code d'état de la réponse HTTP, qui devrait être 200 dans des circonstances normales. Si la ressource demandée n'existe pas, 404 sera renvoyé. Il existe d'autres codes d'état tels que l'erreur du serveur 500, etc.
4. statusText Texte d'état de la réponse HTTP, utilisé pour décrire la signification du code d'état de la réponse, tel que OK dans 200 OK, Not Found dans 404 Not Found
5. ResponseBody est le tableau d'octets des données de réponse. Il peut être utilisé directement dans VBScript, mais il doit être converti en JScript.
6. ResponseText obtient les données de réponse sous forme de texte
7. ResponseXML renvoie les données de réponse sous forme d'objet XMLDOM, ce qui est particulièrement utile lorsque les données demandées sont un document XML.
8. Objet de flux de réponse ResponseStream, cet attribut n'est pas couramment utilisé