2016-12-06 2 views
0

Ich habe ein Projekt, das ich fertig, und wenn Sie es auf Github-Seiten hochladen, funktioniert es nicht. Es werden keine Skripte, extern verknüpfte Schriftarten und API-Daten importiert. Die API unterstützt nur HTTP und Github-Seiten akzeptieren nur HTTPS. Irgendwo herum, ohne APIs zu ändern? Die API ist Openweathermap.Openweathermap API auf 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

Sie möchten Ihren API-Schlüssel möglicherweise nicht auf SO veröffentlichen. – Timo

+0

Kostenlose API, aber ich verstehe. – William

Antwort

1

Nein, es wird keine einfache Möglichkeit, um diese Einschränkung sein, wie es für die Sicherheit und Integrität Ihrer Website wichtig ist. Wenn Sie über eine unverschlüsselte Verbindung auf Ressourcen von einer HTTPS-verschlüsselten Seite zugreifen, werden dem Benutzer immer Sicherheitswarnungen angezeigt.

Sie können einen Proxy einrichten, der über HTTP auf die API zugreift und die Aufrufe über HTTPS an den Browser weiterleitet. Beachten Sie, dass dies einen erheblichen Mehraufwand für den Entwicklungsaufwand verursachen kann.

Die einfachste Lösung wäre wahrscheinlich, zu einem anderen Wetterdatenanbieter zu wechseln, considering that HTTPS encryption by default may be a good idea.

Verwandte Themen