Le premier paramètre de la méthode ouverte de l'objet XMLHttpRequest est le type de demande, et la valeur peut être ou publier. Cet article présente la demande GET.
Le but de GET DEMAND est principalement d'obtenir des données. Bien que les demandes de GET puissent transmettre des données, le but de passer des données est de dire au serveur quel contenu nous donner.
Lors de l'utilisation de Get Request, les paramètres sont passés avec l'URL.
Lorsque vous utilisez des demandes GET, ils sont facilement mis en cache, vous devez donc faire attention aux problèmes de mise en cache.
Lorsque vous utilisez la demande de GET, le côté serveur doit utiliser la demande.Querystring [données] pour obtenir des données.
Nous avons utilisé la demande GET dans l'article "Complete Ajax Instance". Nous avons rencontré les problèmes suivants à ce moment-là:
- Comment créer un objet XMLHTTPRequest qui peut s'exécuter dans la plupart des navigateurs.
- Il y a un problème de mise en cache lors de l'utilisation de la demande de Get
- Problème brouillé chinois
Parmi eux, le premier problème a été résolu dans l'article "XmlHttpRequest objet";
Pour le deuxième problème, la raison en est:
La demande GET accédera au cache à chaque fois pour voir s'il y a une URL correspondante. S'il y en a, l'URL dans le cache sera retournée. S'il n'y a pas, une demande sera faite au serveur.
Solution:
1. Ajoutez un paramètre de changement dynamique à l'URL pour constater que chaque fois que vous accédez à une URL différente, afin qu'une nouvelle demande soit émise au serveur à chaque fois.
Pour la troisième question, examinons d'abord les raisons du code brouillé:
Les données renvoyées par XMLHTTP sont UFT-8 par défaut. Si la page client est GB2312 ou un autre encodage, un code brouillé se produira.
Solution:
1. Si le client est GB2312, alors lors de la sortie, spécifiez le codage du flux de sortie.
2. Le client et le serveur utilisent le codage UTF-8
3. Assurez-vous d'utiliser la méthode EncodeuriComponent pour coder les paramètres
Faites attention à l'exemple:
Le fichier HTML de page n'a pas changé. La connaissance du code de changement JS est la suivante:
<script type = "text / javascript"> function btn_click () {// Créer xmlhttpRequest // Obtenez la valeur var username = document.getElementById ("txt_username"). Valeur; var age = document.getElementById ("txt_age"). valeur; // Configurer l'objet XMLHTTPRequest // Utilisez Encode la méthode Uricomponent pour coder les paramètres obtenus // Ajouter des paramètres pour accéder à différentes URL pour éviter les problèmes de cache xmlhttp.open ("Get", "Get.aspx? UserName =" + EncodeURIComponent (username) + "& age =" + EncodeURICONNENT (Age) + "& Random =" + Age = "+ EncodeURICONT Math.random ()); // Définissez la fonction de rappel xmlhttp.onreadystateChange = function () {if (xmlhttp.readystate == 4 && xmlhttp.status == 200) {document.getElementById ("result"). Innerhtml = xmlhttp.RessseSetExt; }} // Envoyez la demande, car les paramètres sont tous dans l'URL, donc null est envoyé ici xmlhttp.send (null); } </ script>
Côté serveur:
Protégé void page_load (expéditeur d'objet, EventArgs e) {réponse.Clear (); String username = request.QueryString ["nom d'utilisateur"]; String Age = request.QueryString ["Age"]; Response.Write ("Name: '" + Username + "' <br/> Age:" + Age + "<br/> Time: '" + DateTime.Now.ToString () + "'"); Réponse.end ();}// Source de http://www.vevb.com/oneword/archive/2011/06/04/2072585.html