试图找出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);
})
})
})
答案 0 :(得分:0)
不要拆分“,”(注意空格)仅在“,”
上拆分不
loc = d.loc.split(" , ");
可是:
loc = d.loc.split(",");
来自https://www.w3schools.com/jsref/jsref_split.asp
语法:string.split(separator,limit)
分隔符:可选。指定字符或常规字符 表达式,用于拆分字符串。如果省略,整个 将返回字符串(只包含一个项目的数组)
限制:可选。一个整数,指定拆分项数 分裂限制后不会包含在数组
中
通过使用包含多个字符的字符串,我认为JavaScript正在将其解释为正则表达式。
答案 1 :(得分:0)
如前所述,问题是:逗号周围是否存在空格:
loc = d.loc.split(" , ");
相反,应该是:
loc = d.loc.split(",");
原因:来自ipinfo.io IP lookup API的响应包含一个JSON对象,其中loc
字段是以 no 空格分隔的坐标逗号。< / p>
例如:
{
"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挑战时,我也避免公开您的开放天气图私钥(appid
)(我使用了 CodePen 而且我不喜欢暴露私钥的想法,所以我写了Open Weather Map Proxy一个JS脚本,任何人都可以复制并粘贴到个人新的 Google Scripts App 并将其用作传递服务。)