2016-12-06 9 views
0

У меня есть проект, который я закончил, и когда вы загружаете его на страницы Github, он не работает. Он не будет содержать никаких скриптов, внешних шрифтов и данных API. API поддерживает только HTTP, а страницы Github принимают только HTTPS. В любом случае, без изменения API? API - это Openweathermap.API Openweathermap на Githubpages

$(document).ready(function(){ 
 
var temp = $('.temperature'); 
 
var APIKEY = '; 
 
var loc = $('#search').val(); 
 
function updateByCity(loc){ 
 
\t var url = "http://api.openweathermap.org/data/2.5/weather?q=" + loc + "&APPID=" + APIKEY; 
 
\t sendRequest(url); 
 
} 
 

 
function k2f(k){ 
 
return Math.round(k*(9/5)-459.67); 
 
} 
 
function ascii(a){ 
 
\t return String.fromCharCode(a); 
 
} 
 

 
$('.enter').click(function(event){ 
 
event.preventDefault(); 
 
var loc = $('#search').val(); 
 
var url = "http://api.openweathermap.org/data/2.5/weather?q=" + loc + "&APPID=" + APIKEY; 
 
\t console.log(url); 
 
\t var xmlhttp = new XMLHttpRequest(); 
 
\t xmlhttp.onreadystatechange = function(){ 
 
\t \t var url = "http://api.openweathermap.org/data/2.5/weather?q=" + loc + "&APPID=" + APIKEY; 
 
\t \t console.log("lol"); 
 
\t var data = JSON.parse(xmlhttp.responseText); 
 
\t var datatext = data.id; 
 
\t var name = data.name; 
 
\t \t var locname = name; 
 
\t \t var temptext = k2f(data.main.temp) + ascii(176) + "F"; 
 
\t \t console.log(temp); 
 
\t \t console.log(url); 
 
\t \t $('.temperature').text(temptext); 
 
\t $('.city').text(name); 
 
\t }; 
 
\t xmlhttp.open("GET", url, true); 
 
\t xmlhttp.send(); 
 

 
});

+0

Возможно, вы не захотите опубликовать свой ключ API на SO. – Timo

+0

Бесплатный API, но я понимаю. – William

ответ

1

Нет, не будет простой способ обойти это ограничение, поскольку это важно для обеспечения безопасности и целостности вашего сайта. Если вы получаете доступ к ресурсам с зашифрованной страницы HTTPS через незашифрованное соединение, пользователь всегда будет видеть предупреждения о безопасности.

Вы можете настроить прокси-сервер, который обращается к API через HTTP и передает вызовы браузеру через HTTPS. Обратите внимание, что это может вызвать значительные накладные расходы с точки зрения усилий по развитию.

Простым решением, вероятно, было бы перейти на другого поставщика данных о погоде, considering that HTTPS encryption by default may be a good idea.

 Смежные вопросы

  • Нет связанных вопросов^_^