Github API i Access-Control-Allow-Origin
to prawdopodobnie proste pytanie (serie), ale nie mogę go owinąć głową.
Próbuję uzyskać dostęp do api github z aplikacji internetowej hostowanej na mojej stronie. Oto kod w skrócie:
<!DOCTYPE html>
<html>
<head>
<style>p { color:red; }</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function () {
$.ajax( {url :'https://api.github.com/repos/janesconference/kievIIPlugins/commits', dataType: "json", cache: false, success: function (data, textStatus, jqXHR)
{
var lastCommitSha = data[0].sha;
$("p").text("Last commit SHA: " + lastCommitSha);
}
});
});
</script>
</head>
<body>
<p>Ajax request not (yet) executed.</p>
</body>
</html>
Jeśli skieruję przeglądarkę na tę przesłaną prostą stronęna moim koncie Dropbox wszystko w porządku. Jeśli zamiast tego skieruję przeglądarkę na tę przesłaną prostą stronęna mojej stronie, Cieszę się złą sławąAccess-Control-Allow-Origin
wyjątek:
XMLHttpRequest cannot load https://api.github.com/repos/janesconference/kievIIPlugins/commits?_=1360060011783. Origin http://bitterspring.net is not allowed by Access-Control-Allow-Origin.
Tak więc pytania:
Dlaczego działa w Dropbox?Rozumiem, że dzięki CORS będzie działać nawet na stronie internetowej. To kwestia wprowadzeniaAccess-Control-Allow-Origin: *.github.com
na mojej konfiguracji Apache lub coś takiego. Ale, jak cytowano z en.wiki,Może to jednak nie być odpowiednie w sytuacjach, w których bezpieczeństwo jest problemem
Czy można to zrobić bez zmiany konfiguracji Apache? Prawdopodobnie nie mogę dotknąć konfekcji Apache na mojej stronie hostingowej i zawsze pojawia się problem bezpieczeństwa. Jak to zrobić w odpowiedni sposób?