2016-05-08 152 views
2

我試圖做一個頁面,將使用openweathermap API來顯示用戶的城市和本地溫度,不幸的是它似乎並沒有處理JSON api,並且是什麼也不做。據我所知,我的代碼沒有問題,所以我不明白什麼是錯的。
這裏的鏈接的jsfiddle和javscript代碼:
https://jsfiddle.net/qo2h1L9e/2/Javascript似乎並沒有處理JSON api

$(document).ready(function() { 
    var data; 
    if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
     var lat = position.coords.latitude; 
     var lon = position.coords.longitude; 
     console.log(lat); 
     console.log(lon); 
     console.log("api.openweathermap.org/data/2.5/weather?lat=" + lat + "&lon=" + lon + "&APPID=4907e373098f091c293b36b92d8f0886"); 
     $.getJSON("api.openweathermap.org/data/2.5/weather?lat=" + lat + "&lon=" + lon + "&APPID=4907e373098f091c293b36b92d8f0886", function(json) { 
     data = json; 
     console.log(data.name); 
     $("#city").text(data.name); 
     }); 
    }); 
    } 
}); 
+0

地址是相對於當前'window.location'而言的,'api.openweathermap.org'也可以是有效的目錄名稱。在地址中包含協議和'//錨點以將其識別爲主機名 - '「http://api.openweathermap.org/...」' –

+0

我按照你的建議做了,它沒有幫助。當我從控制檯獲取URL並將其放入搜索引擎的地址欄中時,我在我的頁面上獲得了所需的JSON對象,但由於某些原因,我的代碼似乎並未收到。 – majestyc54

+0

您是否收到任何錯誤?瀏覽器通常會記錄Ajax請求在其控制檯失敗的原因。 –

回答

1

編碼這個時候我有一個類似的問題。假設你在FCC上?

反正,試試加入& callback =?到api網址。您可能需要以JSONP而不是JSON來獲取數據。

此外,您不需要定義數據。你可以直接通過json參數訪問對象。

0

我已經做了的jQuery試試這個代碼

 $(document).ready(function() { 
      var data; 
      if (navigator.geolocation) { 
       navigator.geolocation.getCurrentPosition(function(position) { 
        var lat = position.coords.latitude; 
        var lon = position.coords.longitude; 
        console.log(lat); 
        console.log(lon); 
        console.log("api.openweathermap.org/data/2.5/weather?lat=" + lat + "&lon=" + lon + "&APPID=4907e373098f091c293b36b92d8f0886"); 
//     $.getJSON("api.openweathermap.org/data/2.5/weather?lat=" + lat + "&lon=" + lon + "&APPID=4907e373098f091c293b36b92d8f0886", function(json) { 
//      data = json; 
//      console.log(data.name); 
//      $("#city").text(data.name); 
        //     }); 
        var url = 'http://api.openweathermap.org/data/2.5/weather'; 
        var params = {}; 
        params.lat = lat; 
        params.lon = lon; 
        params.APPID = "4907e373098f091c293b36b92d8f0886"; 

        $.ajax({ 
         type: "GET", 
         url: url, 
         dataType: "jsonp", 
         contentType: "application/json; charset=utf-8", 
         data: params, 
         success: function (res) { 
          console.log(res); 
         }, 
         error: function (res) { 
         } 
        }); 


       } 
       ); 
      } 
     }); 

的問題是在json。對於跨域使用jsonp

相關問題