0

我不确定为什么,但似乎当我在调用另一个 getJson 之后调用 $.getJSON 时,什么都没有发生。这是代码:

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");
    });
}

我的问题是,我对这些 $.getJSON 调用做错了吗?

非常感谢

4

2 回答 2

3

您已经指定回调应该是c函数,所以声明它:

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");
}
于 2012-04-29T23:05:34.423 回答
1

您的请求在当前域之外。您不能提出外部请求,它受到跨域策略的限制。

此类请求并使用jsonp请求代替。这是一个让您入门的指南。

于 2012-04-29T22:56:32.237 回答