2013-05-01 7 views
1

J'ai regardé des tonnes de démos et des tutoriels AJAX et JavaScript, mais je n'arrive pas à faire fonctionner ce truc correctement. Voici ce que j'ai ...Implémentation d'une Shoutbox avec javascript et AJAX

function createRequestObject() { 
var ro = false; 
if (window.XMLHttpRequest) {    // Mozilla, Safari, ...    
    ro = new XMLHttpRequest(); 
} else if (window.ActiveXObject) {  // IE        
    try { 
     ro = new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch (e) { 
     try { 
      ro = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (e) { } 
    } 
} 
return ro; 
} 


function ajaxrequest(){ 
var http = createRequestObject(); 
if(http) { 
    var name = "Strassburg"; 
    var message = "Strike three you're out"; 
    http.open('post', '/server/shout.php'); 
    // needed in order for most servers to see POST data      
    http.setRequestHeader('Content-Type', 
          'application/x-www-form-urlencoded'); 
    http.onreadystatechange = function() { 
     if(http.readyState == 4){ 
      if(http.responseText.indexOf(':' != -1)) { 
       var data = http.responseText.split(':') 
       alert(data) 
      } 
     } 
    }; 
    http.send('name=' + name + '&message=' + message); 
} 

}

En ce moment, je le fais avec du texte statique (nom et un message au lieu d'utiliser l'utilisateur des champs entrés), mais je reçois un vide alerte. Si le readyState est mis à 4, cela signifie que l'appel ajax a réussi, je crois? le server/shout.php m'a été donné, je ne comprends pas très bien le php, mais si un peu de cela est nécessaire je peux le mettre ici aussi.

Répondre

1

cette ligne sa http.responseText.indexOf (':'! = -1)

(":" = -1) = true, donc indexOf recherche vrai dans le responseText

essayer http.responseText.indexOf (':')! == -1

+0

Ceci est vrai, et a confirmé que le responsetext est vide ... mais pourquoi? – SetSlapShot

1

readyState == 4 signifie que la demande a été complétée, pour vérifier si elle était OK check http.status == 200

if (http.readyState == 4) { 
if(http.status == 200) { 
    alert(http.responseText); 
} 
} 

P.S. cela devrait être un commentaire, mais je n'ai pas assez de note pour commenter votre message