2017-03-01 3 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)

セパレータ:オプション。文字列を分割するために使用する文字または通常の 式を指定します。省略された場合、 文字列全体が返されます(1つの項目のみの配列)

制限:オプションです。分割制限後の分割数を指定する整数、アイテム は、複数の文字の文字列を使用することにより、配列

には含まれません、私にはJavaScriptを有効にし、通常のように解釈されていることを考えています表現。

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

、代わりに、なければならない:

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

理由:から応答

0

としては、既に問題がでコンマの周りの空間の存在で、提案しましたipinfo.io IP lookup APIには、locフィールドのフィールドが、カンマ区切りがではなく、のスペースで区切られたJSONオブジェクトが含まれています。例えば

{ 
    "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スクリプts Appを使用し、パススルーサービスとして使用してください)。