Я работаю в лагере бесплатного кода и пытаюсь создать приложение погоды с использованием OpenWeatherMap API, но оно не работает. Я использую codepen, потому что это то, что нужно отправить, и это должен быть https, чтобы использовать геолокацию. Это стало проблемой, потому что я получаю эту ошибку.
Смешанный контент: страница по адресу 'https://s.codepen.io/boomerang/8658fc75197c1c3799d7eb446c1be54c1475174843341/index.html?editors=0010' был загружен через HTTPS, но запросил небезопасную конечную точку XMLHttpRequest 'http://api.openweathermap.org/data/2.5/weather?lat=54.757753799999996&lon=-1.6074879&APPID=APIIDHERE'. Этот запрос был заблокирован; контент должен передаваться через HTTPS.
По какой-то причине я подумал, что это может сработать, если я изменю вызов API на HTTPS, но потом получаю эту ошибку
ПОЛУЧИТЬ https://api.openweathermap.org/data/2.5/weather?lat=54.757775699999996&lon=-1.6074815999999998&APPID=APIIDHERE net::ERR_CONNECTION_REFUSED
Я использовал ключ API, но просто спрятал его здесь.
Я пробовал несколько разных способов исправить это, которые я видел в других сообщениях, но пока ничего не сработало:/
Я использую этот код для запроса
function updateLoc (lat, long) {
var url = "https://api.openweathermap.org/data/2.5/weather?" +
"lat=" + lat +
"&lon=" + long +
"&APPID=" + APPID;
sendRequest (url);
}
function sendRequest (url) {
var xmlhttp = new XMLHttpRequest ();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readystate == 4 && xmlhttp.status == 200) {
var data = JSON.parse (xmlhttp.responseText);
var weather = {};
weather.icon = data.weather.icon;
weather.dir = data.wind.deg;
weather.wind = data.wind.speed;
weather.temp = data.main.temp;
weather.loc = data.name;
weather.hum = data.main.humidity;
update (weather);
}
};
xmlhttp.open ("GET", url, true);
xmlhttp.send ();
}
Любая помощь будет оценена по достоинству :)