2010-02-19 6 views
0

J'ai ce html:Mon appel AJAX ne retourne rien, mais ne parvient pas non plus

<input type="text" id="text"/> 
<input type="button" id="submit" value="Submit" /> 
<div id="twitter_update_list"> 
</div> 

et ce javascript:

var xmlHttp; 
document.body.onclick = function(){ 
    var username = document.getElementById('text').value; 
    selectUser(username); 
} 
    function selectUser(username){ 
     var url = "http://twitter.com/statuses/user_timeline/" + username + ".json?callback=twitterCallback2&count=100"; 
     try{// Opera 8.0+, Firefox, Safari 
      xmlHttp = new XMLHttpRequest(); 
     }catch (e){// IE 
      try{ 
       xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
      } catch (e) { 
       try{ 
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
       } catch (e){ 
        // Something went wrong 
        alert("Your browser broke!"); 
        return false; 
       } 
      } 
     } 
     xmlHttp.onreadystatechange = processRequest; 
     xmlHttp.open("GET", url, true); 
     xmlHttp.send(null); 
    } 

    function processRequest(){ 
     if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)) { 
      if (xmlHttp.responseText == "Not found") { 
       document.getElementById('twitter_update_list').innerHtml = "Not found"; 
      }else if(xmlHttp.responseText == " "){ 
       document.getElementById('twitter_update_list').value = "Empty"; 
      }else{ 
       // No parsing necessary with JSON!   
       document.getElementById('twitter_update_list').value = xmlHttp.responseText; 
       console.log(xmlHttp.responseText); 
      } 
     } 
    } 

Je regarde Firebug et je vois est envoyé out ce correctement mais je ne reçois aucune réponse que ce soit. Oh, et j'utilise du javascript brut parce que je veux le pratiquer. =)

Répondre

1

Vous essayez de faire XMLHttpRequest inter-domaine. Cela ne fonctionne pas bien que le service puisse supporter JSONP. Pour effectuer une requête JSOP, vous devez soit injecter une balise <script> avec les gestionnaires d'événements corrects, soit utiliser un framework tel que jQuery.

+1

+1 donné: ne peut pas croire que je ne regarde pas l'URL. –

+0

Sauf s'il travaille pour twitter :) –

0

Si vous utilisez jquery, vous pouvez simplement faire

$.load("http://twitter.com/statuses/user_timeline/"+username, 
function(data) 
{ 
alert(data); 
} 
); 

qui imprimera le usertimeline pour le nom d'utilisateur

Questions connexes