You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

jQuery初学者求助:如何通过Yahoo API获取当前天气状况

jQuery获取天气数据的技术指导

嘿,作为jQuery新手能尝试调用API获取天气数据,已经迈出很棒的一步啦!不过首先得给你提个关键信息:Yahoo的YQL天气API早在几年前就已经停止服务了,所以你现在用这个URL发起请求,肯定拿不到任何有效数据,这是当前最核心的问题。

下面给你推荐一个稳定好用的替代方案,用OpenWeatherMap的免费API来实现需求,一步步来:

第一步:准备API密钥

先去OpenWeatherMap官网注册一个免费账号,登录后就能获取到专属的API密钥(免费版完全足够个人学习使用)。

第二步:改写jQuery请求代码

这里给你写了完整的可运行示例,你只需要替换成自己的API密钥就行:

$(function() {
  // 替换成你自己的OpenWeatherMap API密钥
  const apiKey = '你的API密钥';
  const city = 'Lyon'; // 要查询的城市,支持英文或拼音(部分城市)
  const units = 'metric'; // 用metric表示摄氏度,imperial是华氏度

  // 构造请求URL
  const weatherUrl = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=${units}`;

  // 发起JSON请求
  $.getJSON(weatherUrl, function(data) {
    // 解析返回的天气数据
    const weatherDesc = data.weather[0].description; // 当前天气描述
    const temp = data.main.temp; // 当前气温
    const feelsLike = data.main.feels_like; // 体感温度

    // 把数据展示到页面上(先在HTML里加个<div id="weather-display"></div>哦)
    $('#weather-display').html(`
      <h3>里昂当前天气</h3>
      <p>天气状况:${weatherDesc.charAt(0).toUpperCase() + weatherDesc.slice(1)}</p>
      <p>当前气温:${temp}°C</p>
      <p>体感温度:${feelsLike}°C</p>
    `);
  })
  // 一定要加失败处理,新手排错必备!
  .fail(function(jqXHR, textStatus, errorThrown) {
    console.error('获取天气失败:', textStatus, errorThrown);
    alert('哎呀,获取天气信息失败了,请检查API密钥是否正确,或者网络是否正常~');
  });
});

给jQuery新手的小提示

  • 一定要处理请求失败的情况:上面代码里的.fail()方法能帮你快速排查问题,比如API密钥填错、城市名拼写错误、网络故障等,都能在控制台看到提示。
  • 多看官方文档:调用任何API前,先看官方的返回数据结构说明,这样你就知道怎么精准提取自己需要的字段,比如OpenWeatherMap的文档会详细告诉你每个返回字段的含义。
  • 跨域问题不用慌:OpenWeatherMap的API支持CORS,所以用jQuery的$.getJSON可以直接调用,不需要额外配置。

内容的提问来源于stack exchange,提问作者Ella

火山引擎 最新活动