2012-02-05 3 views
0

Le code suivant que j'utilise pour mettre à jour dynamiquement l'élément TextArea dans mon HTML toutes les 2 secondes sans recharger la page. Cependant, le alert(request.readystate) renvoie undefined au lieu d'un nombre 1-4. Quand j'ai essayé if(request) alert("Request object") il alerte l'utilisateur "demande l'objet" comme prévu. Je n'ai aucune idée pourquoi cela ne fonctionne pas et j'ai essayé de comprendre cela pendant des heures!XMLHttpRequest ne fonctionne pas

Mon code:

<script type="text/javascript"> 

    function init(){ 
     var url="http://www.suchandsuch.net/ChatBowl/text.txt"; 
     var request= new XMLHttpRequest(); 
     request.open("POST",url,true); 
     alert(request.readystate); 
     request.onload= function(){ 
     if (request.readystate ==4 && request.status == 200){ 
      document.getElementById('textarea').innerHTML=request.responseText; 
     } 
     } 
     request.send(null); 

    } 


    var int=self. setInterval('init()', 2000); 

    </script> 

J'apprécie toute aide.

+1

est l'URL que vous demandez en dehors de votre domaine? –

+0

En outre, vous devez utiliser un GET pour cette commande, pour se conformer aux normes HTML –

+0

vous devez vraiment vous assurer que tout est dans le bon cas: http://en.wikipedia.org/wiki/XMLHttpRequest#The_onreadystatechange_event_listener –

Répondre

3

JavaScript est sensible à la casse et vous avez tapé le mauvais readyState:

readyState pas readystate

MSDN docs

Et la fonction de rappel doit être attribué à onreadystatechange:

var url="http://www.suchandsuch.net/ChatBowl/text.txt"; 
var request= new XMLHttpRequest(); 
request.onreadystatechange = function(){ 
    alert(request.readyState + " " + request.status); 
    if (request.readyState ==4 && request.status == 200) 
      document.getElementById('textarea').innerHTML=request.responseText; 
    }; 

request.open("POST", url, true); 
alert(request.readyState); 

request.send();

+0

Est-ce que cela ne fonctionne toujours pas? :( – moesef

+0

@ user1190419. ce qui ne fonctionne pas exactement? Essayer mettre l'alerte à l'intérieur de la fonction de rappel, j'ai ajouté l'alerte au rappel – gdoron

+0

@ user1190419 Êtes-vous sûr que l'id est 'textarea'? – gdoron

0

peut-être au lieu de

request.onload= function(){ 

essayer

request.onreadystatechange = function(){ 
+0

C'est vrai, mais le problème est sensible à la casse, voir ma réponse – gdoron

+0

nope n'a pas fonctionné :(. – moesef

+0

@gdoron +1 yup le vôtre est plus complet aussi –

Questions connexes