2010-12-15 9 views
4

J'ai écrit la fonction Ajax comme ci-dessous.Ajax appel de fonction

Cela ne fonctionne pas correctement. Si je supprime le xmlhttp.status==400 alors cela fonctionne. Quelle erreur ai-je faite dans cet exemple?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
    <head> 
     <title> New Document </title> 
     <script type="text/javascript"> 
      function getAjax() 
      { 
       if (window.XMLHTTPRequest) 
       { 
        xmlhttp=new XMLHTTPRequest(); 
       } 
       else 
       { 
        xmlhttp=new ActiveXObject("Microsoft.xmlHTTP"); 
       } 
       xmlhttp.onreadystatechange=function() 
       { 
        if (xmlhttp.readyState==4 && xmlhttp.status==400) 
        { 
         document.getElementById('mydiv').innerHTML=xmlhttp.responseText; 
        } 
       } 
       xmlhttp.open("GET","testajax.txt",true); 
       xmlhttp.send(null); 
      } 
     </script> 
    </head> 

    <body> 
     <input type="button" value="Get content" onclick="getAjax()"><br> 
     <div id="mydiv"></div> 
    </body> 
</html> 

Répondre

1

« Une autre utilisation simple est de trouver si une URL existe, dans HTTP il existe différents codes d'état retournés par la tête et requêtes GET, 200 signifie succès, 404 signifie un échec, et les autres dire d'autres choses. Voir HTTP status codes pour une explication complète. "

en utilisant la propriété d'état de l'objet XMLHTTP vous fournit ce statut

  if (xmlhttp.readyState==4) { 
      if (xmlhttp.status==200) alert("URL Exists!") 
      else if (xmlhttp.status==404) alert("URL doesn't exist!") 

      } 

http://www.jibbering.com/2002/4/httprequest.2004.9.html

0

Le bon "if" condition aurait dû être: -

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
{ 
    document.getElementById('mydiv').innerHTML=xmlhttp.responseText;    
} 

Pour compréhension plus profonde, vous pouvez voir ce joli & article détaillé de la bibliothèque technique d'IBM de Mastering AJAX. En outre, vous pourriez avoir facilement utilisé l'API jQuery.ajax() de la bibliothèque jQuery.

Espérons que ça aide.

+0

avec xmlhttp.status == 200 aussi ne pas donner la .. à mettre monsieur – Mihir

+0

@Mihir - Si possible, essayez avec l'API jQuery AJAX. C'est le meilleur avec de petits détails. –