2012-11-29 5 views
0

Je suis un débutant à Ajax, et j'ai ce code html qui est destiné à changer le contenu interne d'un div en utilisant xmlhttprequest pour demander différentes adresses html et mettre leur contenu dans un div. Qu'est-ce que je fais mal? Voici le code:Utiliser Ajax pour changer le contenu interne d'un div

<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
    <script type="text/javascript"> 
     var xmlhttp= null; 
     if(window.XMLHttpRequest){ 
      xmlhttp = new XMLHttpRequest(); 
     }else{ 
      alert("You must be using a different browser."); 
     } 

     function makeRequest(serverPage,objID){ 

      var obj = document.getElementById(objID); 
      xmlhttp.open("GET",serverPage); 
      xmlhttp.onreadystatechange = function(){ 
       if(xmlhttp.readyState == 4 && xmlhttp.status == 100){ 
        obj.innerHTML = xmlhttp.responseText; 
       } 
      } 
      xmlhttp.send(null); 
     } 
    </script> 
</head> 
<body onload="makeRequest ('content1.html','hw')"> 
    <div align="center"> 
     <h1>My Webpage</h1> 
     <a href="content1.html" onclick="makeRequest('content1.html','hw'); return false;"> Page1</a> | <a href="content2.html" onclick="makeRequest('content2.html','hw'); return false;"> Page2</a> | <a href="content3.html" onclick="makeRequest('content3.html','hw'); return false;"> Page3</a> | <a href="content4.html" onclick="makeRequest(content4.html,hw); return false;"> Page4</a> 
     <div id = "hw"></div> 
</body> 

+1

Quelle erreur sont face à vous? – Passerby

Répondre

2

En général, cela semble OK pour moi.

Toutefois, le contrôle xmlhttp.status == 100 semble suspecté.

100 est un code d'état HTTP inhabituel. Généralement, les serveurs Web renvoient 200 ("OK") lors d'une demande réussie. Essayez de remplacer le contrôle status == 100 par status == 200.

Pour référence, s'il vous plaît voir: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

0

changement xmlhttp.status == 100-xmlhttp.status == 200 vérifier si cela résout votre problème

et si vous êtes essayez d'exécuter la page dans IE essayer d'ajouter cette ligne

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
0

Je pense qu'il devrait être:

function makeRequest(serverPage,objID){ 
    xmlhttp.open("GET",serverPage); 
    xmlhttp.onreadystatechange = function(){ 
     if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ 
      document.getElementById(objID).innerHTML = xmlhttp.responseText; 
     } 
    } 
    xmlhttp.send(null); 
} 
0
function AjaxGet(url,helm) 
{ 
    if (xmlhttp == null) 
    { if (window.XMLHttpRequest) // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
    else // code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

xmlhttp.onreadystatechange = function() 
{ if (xmlhttp.readyState==4) 
    { if ((xmlhttp.status==200) || (xmlhttp.status==304)) 
      { document.getElementById(helm).innerHTML = xmlhttp.responseText; } 
      else { document.getElementById(helm).innerHTML = xmlhttp.status + " " +xmlhttp.statusText; } 
    } 
} 

    xmlhttp.open("GET",url,true); 
    xmlhttp.send(); 
} 
Questions connexes