Maison  >  Article  >  interface Web  >  Compréhension approfondie des cinq étapes des requêtes asynchrones ajax (code détaillé)

Compréhension approfondie des cinq étapes des requêtes asynchrones ajax (code détaillé)

yulia
yuliaoriginal
2018-09-17 17:24:2431095parcourir

Ajax est souvent utilisé dans le travail front-end. En fait, beaucoup de gens savent seulement qu'Ajax est une requête asynchrone et ne savent pas comment l'utiliser. Quelles sont ses étapes de base ? Ensuite, cet article vous présentera les étapes de la requête Ajax et le code détaillé des étapes de la requête Ajax. Les amis intéressés peuvent y jeter un œil.

AJAX (Asynchronous JavaScript and XML) : fait référence à une technologie de développement Web permettant de créer des applications Web interactives. En échangeant une petite quantité de données avec le serveur en arrière-plan, AJAX peut permettre des mises à jour asynchrones de pages Web. Cela signifie que certaines parties de la page Web peuvent être mises à jour sans recharger la page Web entière.

1. Créez un objet xmlHttpRequest

Tous les navigateurs modernes (IE7+, Firefox, Chrome, Safari et Opera) prennent en charge l'objet XMLHttpRequest, tandis qu'IE5 et IE6 utilisent ActiveXObject.

    if(window.XMLHttpRequest){
       xmlHttp = new XMLHttpRequest(); 
      if(xmlHttp.overrideMimeType){
        xmlHttp.overrideMimeType("text/xml");
      }
   }else if(window.ActiveXobject){
       var activeName =["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
       for(var i=0; i<activeName.length; i++){
          try{
              xmlHttp = new ActiveXobject(activeName[i]);
             break;
          }catch(e){
          }
       }     
   }
   if(!xmlHttp){
      alert("创建xmlhttprequest对象失败");
   }else{    
   }

2. Définissez la fonction de rappel

   xmlHttp.onreadystatechange= callback;
   function callback(){}

3. Utilisez la méthode OPEN pour établir une connexion avec le serveur xmlHttp. .open("get ","ajax?name="+ name,true)

Dans cette étape, faites attention à définir la méthode de requête http (post/get). S'il s'agit d'une méthode POST, faites attention. pour définir les informations d'en-tête de requête xmlHttp.setRequestHeader("Content- Type","application/x-www-form-urlencoded")

Envoyer les données au serveur

  xmlHttp.send(null);

S'il s'agit d'une méthode POST, cela ne fonctionnera pas Vide

5. Traitez différents états de réponse dans la fonction de rappel

 if(xmlHttp.readyState == 4){
      //判断交互是否成功
      if(xmlHttp.status == 200){
        //获取服务器返回的数据
        //获取纯文本数据
        var responseText =xmlHttp.responseText;
       document.getElementById("info").innerHTML = responseText;
      }
  }

Attribut readyState : Représente l'étape actuelle du processus de demande/réponse

0 : Non initialisé. La méthode open() n'a pas encore été appelée.
1 : Commencez. La méthode open() a été appelée, mais la méthode send() n'a pas encore été appelée.
2 : Envoyer. La méthode send() a été appelée, mais la réponse n'a pas encore été reçue.
3 : Recevoir. Des données de réponse partielles ont été reçues.
4 : Terminé. Toutes les données de réponse ont été reçues et sont prêtes à être utilisées sur le client.

Ce n'est qu'une fois que l'objet XMLHttpRequest a terminé les cinq étapes ci-dessus que les données renvoyées par le serveur peuvent être obtenues.

attribut statut : réponse code statut HTTP
200 : réponse réussie
301 : redirection permanente/transfert permanent
302 : redirection temporaire/transfert temporaire
304 : cette fois-ci Obtention du contenu est de lire les données dans le cache
400 : Erreur de paramètre de demande
401 : Aucune autorisation d'accès
404 : La ressource consultée n'existe pas

Résumé : Ce qui précède présente les cinq étapes de la requête Ajax et le code détaillé. Cela peut sembler difficile à ceux qui n'ont pas été en contact avec celle-ci. Après l'avoir lu, vous pourrez l'essayer davantage. comprenez-le lentement. J'espère que cela pourra vous aider !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn