2012-04-29 5 views
0

Je ne sais pas pourquoi, mais il semble que quand j'appelle $ .getJSON après qu'un autre ait été appelé, rien ne se passe. Voici le code:

getWeather(); 

function getWeather() { 
    $.getJSON("http://where.yahooapis.com/geocode?q=" + lat + ",+" + lon + "&gflags=R&flags=J", function(data){ 
     zipCode = data.ResultSet.Results[0].postal; 
     WOEID = data.ResultSet.Results[0].woeid; 
     getYahooWeather(WOEID);   
    }); 
} 

function getYahooWeather(x) { 
    var query = escape('select item from weather.forecast where woeid="'+x+'"'); 
    var url = "http://query.yahooapis.com/v1/public/yql?q=" + query + "&format=json&callback=c"; 
    console.log(url); 

    $.getJSON(url, function(data2){ 
     console.log("hey"); 
    }); 
} 

Ma question est, est-ce que je fais quelque chose de mal avec ces appels $ .getJSON?

Merci beaucoup

+0

que dit la console? – Joseph

+0

vérifiez votre console pour l'erreur de politique inter-domaines –

+0

Cette question est-elle une copie possible de http://stackoverflow.com/questions/5492838/why-does-getjson-silently-fail? – jkwuc89

Répondre

3

Vous avez indiqué que le rappel doit être la fonction c, donc déclarer:

function getYahooWeather(x) { 
    var query = escape('select item from weather.forecast where woeid="'+x+'"'); 
    var url = "http://query.yahooapis.com/v1/public/yql?q=" + query + "&format=json&callback=c"; 
    console.log(url); 

    $.getJSON(url); 
} 

function c(data2) { 
    console.log("hey"); 
} 
+0

gahhhhhhhhhhhhh, c'est ce que la copie et le collage vous feront !! merci beaucoup de me l'avoir dit! – Vinny

1

Votre requête ne concerne pas le domaine actuel. Vous ne peut pas faire une demande étrangère, il est restreint par la politique interdomaines.

De telles demandes et faites à l'aide d'une demande jsonp à la place. Et voici un guide pour vous aider à démarrer.