API должен быть HTTPS, потому что codepen — это HTTPS, но API не работает на HTTPS, так что я застрял, что мне делать?
Вот код:
$(document).ready(function() {
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(handleGetCurrentPosition, onError);
}
function handleGetCurrentPosition(location) {
console.log(location.coords.longitude + " " + location.coords.latitude);
$.getJSON("http://api.openweathermap.org/data/2.5/weather?lat=-0.5507657&lon=47.475692800000004&appid=c024988151d2439343bc4617141ac25d", function(result) {
console.log("City: "+result.city.name + " Weather: "+ result.list[0].weather[0].description);
});
}
function onError() {
$('body').innerHTML = "";
$('body').innerHTML = "<h1>Sorry, there was a technical problem. Please reload the page later.";
}
});
и вот сообщение об ошибке:
jquery.min.js:4 Mixed Content: страница 'https://codepen.io/Gochaia/pen/ZWVoYz' был загружен через HTTPS, но запросил небезопасную конечную точку XMLHttpRequest 'http://api.openweathermap.org/data/2.5/weather?lat=-0.5507657&lon=47.475692800000004&appid=c024988151d2439343bc4615d141ac2615d141ac'. Этот запрос был заблокирован; контент должен передаваться через HTTPS.
Благодарю.
ОБНОВЛЕНИЕ
Я нашел решение благодаря @AlexChance. API Forecast.io размещается через SSL, поэтому больше нет смешанного контента.