2017-03-01 84 views
-1

試圖找出freecodecamp任務,但它甚至不工作,即使跟蹤YouTube教程https://www.youtube.com/watch?v=XZXg_fuyYnI&t=1385s。 請幫忙,這段代碼有什麼問題?本地天氣應用程序FreeCodeCamp

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

有沒有發生錯誤? – DanilGholtsman

+0

我現在唯一可以假設的 DanilGholtsman

回答

0

不要拆的 「」(注意空格)的拆分只是 「」

不:

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

但是:

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

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

語法:string.split(separator,limit)

separator:可選。指定用於拆分字符串的字符或常規的 表達式。如果省略,則返回整個 字符串(僅包含一個項目的數組)

limit:可選。指定拆分的數量的整數,項目 分割限制之後將不會被包含在陣列

通過使用一個以上的字符的字符串,我在想,JavaScript是解釋它作爲一個經常性表達。

0

正如已經提出的,問題是空間中存在圍繞逗號:

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

其中,相反,應該是:

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

原因:從響應ipinfo.io IP lookup API包含一個JSON對象,其中loc字段爲座標逗號,用之間的空格分隔。

例如:

{ 
    "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" 
} 

建議:避免暴露你打開天氣地圖私有密鑰appid)也發佈時完成freeCodeCamp挑戰(我用CodePen而我卻沒有像我的私鑰被曝光的想法,所以我寫了Open Weather Map Proxy一個JS腳本,任何人都可以拷貝&粘貼成一個個人新的谷歌Scrip ts App並將其用作通行服務)。

相關問題