2017-06-18 188 views
1

以下代碼在JSbin中工作,但不是在我直接複製並粘貼到codepen,plunker或jsfiddle時。HTML/Javascript代碼在JSbin中工作,但不是codepen,plunker或jsfiddle

<!DOCTYPE html> 
<html> 
<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width"> 
    <title>JS Bin</title> 
</head> 
<body> 


<script> 
    function getWeather(){ 

    var ipCall = 'http://ip-api.com/json'; 
    $.getJSON(ipCall, locationCallBack) 

    function locationCallBack(locationData){ 
    var lat =locationData.lat; 
    var lon = locationData.lon; 

    var apiCall = 'http://api.openweathermap.org/data/2.5/weather?lat='+lat+'&lon='+lon+'&units=imperial&appid=34e8aa0c1d8d15a560df7a7093711071'; 

    $.getJSON(apiCall, weatherCallBack) 
    } 



    function weatherCallBack(weatherData){ 
    var cityName = weatherData.name; 
    var cityTemp = weatherData.main.temp; 
    var weatherType = weatherData.weather[0].main; 
    var weatherIcon = weatherData.weather[0].icon; 

    $('.cityName').append(cityName); 
    $('.cityTemp').append(cityTemp); 
    $('.weatherType').append(weatherType +' '+ weatherIcon); 
    } 

    } 
getWeather() 
</script> 

<div class ="cityName"> 


</div> 

<div class="cityTemp"> 

</div> 

<div class="weatherType"> 

</div> 

</body> 
</html> 

該代碼顯示了該位置的用戶位置和天氣信息。使用api獲取地理位置數據和天氣信息。

+0

作品對我來說http://plnkr.co/edit/gFsOogp7Jc0kqPrqex1X?p=preview – charlietfl

回答

1

如果您瀏覽器的控制檯上檢查,你會看到這樣的錯誤:

jquery.min.js:4混合內容:在[CODEPEN /的jsfiddle URL]加載通過HTTPS網頁,但請求一個不安全的XMLHttpRequest端點'http://ip-api.com/json'。此請求已被阻止;內容必須通過HTTPS提供。

這是發生因爲Codepen和的jsfiddle只允許HTTPS請求,雙方你使用不具有HTTPS協議的API。

瞭解更多關於在這裏:​​在plunker https://blog.codepen.io/2017/03/31/codepen-going-https/

+0

這是一個很好的點,它是要走的路。首先安全是我喜歡這些垃圾箱的強項。 +1 –

相關問題