javascript 中的 WOEID 天气预报(使用 YQL 或 rss)?

发布于 2025-01-07 19:29:06 字数 408 浏览 1 评论 0原文

有没有办法从 javascript 中的 woeid 获取天气预报?

我尝试使用 yahoo 的 rss feed,但无法使其工作。这是我的代码

    var url = "http://weather.yahooapis.com/forecastrss?w=" + encodeURIComponent('WOEID here');

    $.ajax({
        url: url,
        dataType: 'jsonp',
        jsonpCallback: function(data) { console.log(data); },
        success: function(data) { alert("success"); }
    });

有什么建议吗?

Is there any way of getting the weather forecast from woeid in javascript?

I tried using rss feed of yahoo, but couldn't get it to work. here is my code

    var url = "http://weather.yahooapis.com/forecastrss?w=" + encodeURIComponent('WOEID here');

    $.ajax({
        url: url,
        dataType: 'jsonp',
        jsonpCallback: function(data) { console.log(data); },
        success: function(data) { alert("success"); }
    });

Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

可遇━不可求 2025-01-14 19:29:06

以下是使用 jQuery 和 YQL 获取所需信息的最简单方法:

var woeid = "26355493";

var $url = "http://query.yahooapis.com/v1/public/yql?callback=?";

$.getJSON($url, {
    q: "select * from xml where url=" +
       "\"http://weather.yahooapis.com/forecastrss?w=" + woeid + "\"",
    format: "json"
  }, function (data) {
    console.log(data.query.results.rss.channel);
  }
);​

YQL中的查询console...

jsfiddle 中的 JavaScript 代码...

Here's the simplest way to get the info you want using jQuery and YQL:

var woeid = "26355493";

var $url = "http://query.yahooapis.com/v1/public/yql?callback=?";

$.getJSON($url, {
    q: "select * from xml where url=" +
       "\"http://weather.yahooapis.com/forecastrss?w=" + woeid + "\"",
    format: "json"
  }, function (data) {
    console.log(data.query.results.rss.channel);
  }
);​

The query in the YQL console...

The JavaScript code in jsfiddle...

携余温的黄昏 2025-01-14 19:29:06

显然,Weather API 以 RSS 格式返回结果,而您的函数期望以 jsonp 格式返回结果。考虑使用 Yahoo!通过管道 为您获取天气RSS feed,对其进行处理,并以jsonp 格式返回。

这是一个执行类似操作的管道:

http://pipes.yahoo.com/pipes/pipe.info?_id=4d160cd8ed9d6d78164213928a51507d

Apparently, the Weather API returns its results in RSS format, while your function is expecting them in jsonp format. Consider using Yahoo! Pipes to fetch the weather RSS feed for you, process it, and return it in jsonp format.

Here's a pipe that does something similar:

http://pipes.yahoo.com/pipes/pipe.info?_id=4d160cd8ed9d6d78164213928a51507d

指尖凝香 2025-01-14 19:29:06

正如龙建议的那样,我创建了一个雅虎管道 - 这是我的完整代码;代码中的 url 是我创建的 Yahoo Pipe。

$(function(){
   var url = "http://pipes.yahoo.com/pipes/pipe.run?_id=e33143abd20b19a0173b3a4b479fa4d3&_render=json&w=YOURWOEIDHERE";

   function createRequest() {
       try { return new XMLHttpRequest(); } catch(e) {}
       try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
       return null;
   }
   var request = createRequest();
   request.open("GET", url, true);
   request.onreadystatechange = callback;
   request.send(null);

   function callback() {
       if(request.readyState != 4) { return }
       Obj = $.parseJSON(request.responseText);
       console.log(Obj);
   }
});

参考资料:
雅虎管道: http://pipes.yahoo.com/pipes/pipe.info?_id=e33143abd20b19a0173b3a4b479fa4d3
jQuery 1.5 - JSON 错误无效标签

As dragon suggested, I created a Yahoo Pipe - here is my complete code; the url in the code is the Yahoo Pipe I created.

$(function(){
   var url = "http://pipes.yahoo.com/pipes/pipe.run?_id=e33143abd20b19a0173b3a4b479fa4d3&_render=json&w=YOURWOEIDHERE";

   function createRequest() {
       try { return new XMLHttpRequest(); } catch(e) {}
       try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
       return null;
   }
   var request = createRequest();
   request.open("GET", url, true);
   request.onreadystatechange = callback;
   request.send(null);

   function callback() {
       if(request.readyState != 4) { return }
       Obj = $.parseJSON(request.responseText);
       console.log(Obj);
   }
});

references:
Yahoo Pipe: http://pipes.yahoo.com/pipes/pipe.info?_id=e33143abd20b19a0173b3a4b479fa4d3
jQuery 1.5 - JSON error invalid label

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文