【问题标题】:Local Weather App FreeCodeCamp本地天气应用 FreeCodeCamp
【发布时间】:2017-03-01 11:45:14
【问题描述】:

试图找出 freecodecamp 任务,但它甚至无法跟踪 youtube 教程 https://www.youtube.com/watch?v=XZXg_fuyYnI&t=1385s 。 请帮忙,这段代码有什么问题?

var API_KEY = "xxxxxxxxxxxxxxxxxxxxxx";

$(function () {
    var loc;
    $.getJSON('http://ipinfo.io', function (d) {
        console.log("assigning the data...")
        loc = d.loc.split(" , ");
        console.log(loc);
        $.getJSON('http://api.openweathermap.org/data/2.5/weather?lat=' + loc[0] + '&lon=' + loc[1] + '&APPID=' + API_KEY, function (wd) {
            console.log("got the data ,", wd);
        })
    })
})

【问题讨论】:

  • 是否出现错误?
  • 我现在只能假设var requestStr = 'http://api.openweathermap.org/data/2.5/weather?lat='+ loc[0] + '&lon=' + loc[1] +'&APPID=' + API_KEY + '; $.getJSON( requestStr, function(wd){ console.log("got the data ,", wd); })

标签: javascript json api openweathermap


【解决方案1】:

不要在 " , " 上拆分(注意空格)只在 "," 上拆分

不是:

loc = d.loc.split(" , ");

但是:

loc = d.loc.split(",");

来自https://www.w3schools.com/jsref/jsref_split.asp

语法:string.split(分隔符,限制)

分隔符:可选。指定字符或正则 表达式,用于拆分字符串。如果省略,则整个 将返回字符串(只有一项的数组)

限制:可选。一个整数,指定拆分、项目的数量 拆分后的限制将不包含在数组中

通过使用包含多个字符的字符串,我认为 JavaScript 将其解释为正则表达式。

【讨论】:

    【解决方案2】:

    正如已经建议的那样,问题是逗号周围存在空格:

    loc = d.loc.split(" , ");
    

    应该是:

    loc = d.loc.split(",");
    

    原因:来自ipinfo.io IP lookup API 的响应包含一个JSON 对象,其中loc 字段是用no 空格分隔的坐标。

    例如:

    {
      "ip": "203.205.28.14",
      "hostname": "static.cmcti.vn",
      "city": "Ho Chi Minh City",
      "region": "Ho Chi Minh City",
      "country": "VN",
      "loc": "10.8142,106.6438",
      "org": "AS45903 CMC Telecom Infrastructure Company"
    }
    

    建议:当您发布完成的 freeCodeCamp 挑战(我使用 CodePen em> 我不喜欢我的私钥被暴露的想法,所以我写了Open Weather Map Proxy 一个 JS 脚本,任何人都可以复制和粘贴到个人的新 Google 脚本应用程序并将其用作传递服务)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-08
      • 1970-01-01
      • 2021-10-11
      • 2012-01-29
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多