2014-06-13 5 views
1

Je suis en train de créer une extension chrome et j'essaie de récupérer les informations météorologiques dans cette extension à partir du site http://api.openweathermap.org/. J'ai fourni les autorisations nécessaires dans le fichier manifeste. Voici mon code javascript.Chrome Extension xmlHttpRequest ne fonctionne pas

function processPosition(pos) 
{ 
    document.getElementById("testDiv").innerHTML = "Position available. lat=" + pos.coords.latitude + "&lon=" + pos.coords.longitude; 
    v_url = "http://api.openweathermap.org/data/2.5/weather?lat=" + pos.coords.latitude + "&lon=" + pos.coords.longitude; 

    if(window.XMLHttpRequest) 
    { 
     xmlhttp = new XMLHttpRequest(); 
    } 
    else 
    { 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange = function() 
    { 
     if(xmlhttp.readystate == 4 && xmlhttp.status == 200) 
     { 
     processWeatherJSON(xmlhttp.responseText); 
     } 
     else if(xmlhttp.readystate == 3) 
     { 
     document.getElementById("testDiv").innerHTML = "Downloading data";   
     } 
     else if(xmlhttp.readystate == 2) 
     { 
     document.getElementById("testDiv").innerHTML = "Send has been called";   
     } 
      else if(xmlhttp.readystate == 1) 
     { 
     document.getElementById("testDiv").innerHTML = "Ready state 1"; 
     } 
      else if(xmlhttp.readystate == 0) 
     { 
     document.getElementById("testDiv").innerHTML = "Ready state 0";   
     } 
    } 

    xmlhttp.open("GET",v_url,true); 
    xmlhttp.send(); 
} 

Le problème est que le code n'entre dans les blocs pour aucun des statiques. C'est comme si rien ne s'était passé après l'appel de la fonction send().

Des idées?

Voici ma section des autorisations de fichier manifeste d'extension.

"permissions":[ 
     "http://api.openweathermap.org/data/*", 
     "geolocation" 
    ] 
+1

Et si c'est 'readystate == 4 && status! == 200'? – abraham

Répondre

1

D'accord, je suppose que j'ai trouvé la réponse moi-même. Javascript est sensible à la casse. J'ai écrit à tort readyState en tant que readystate.

Vraiment stupide de moi.

Merci à tout le monde.

Questions connexes