to prawdopodobnie proste pytanie (seria), ale nie mogę tego objąć.Github API i Access-Control-Allow-Origin
Próbuję uzyskać dostęp do interfejsu API github z aplikacji internetowej hostowanej na mojej stronie. Jest to kod w pigułce:
<!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>
Gdybym wskazać przeglądarkę do tej prostej strony przesłanych on my dropbox account wszystko jest w porządku. Jeśli natomiast wskazuję moja przeglądarka tej prostej strony przesłanych on my site, mam niesławny 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.
więc pytania:
- Dlaczego to działa na Dropbox?
- Rozumiem, że z CORS działałby nawet na stronie internetowej. Jest to kwestia umieszczenia
Access-Control-Allow-Origin: *.github.com
w mojej konfiguracji Apache'a lub czegoś podobnego. Ale, jak cytat z en.wiki,
Jednak to może nie być odpowiednie dla sytuacji, w których bezpieczeństwo jest problemem
- Czy istnieje sposób to zrobić bez zmiany Konfiguracja Apache? Prawdopodobnie nie mogę dotknąć konfiguacji Apache mojej strony hostingowej i zawsze jest problem bezpieczeństwa. Jaki jest właściwy sposób na zrobienie tego?
Dropbox działa dobrze dla mnie. Próbowałem zarejestrować nową aplikację, ale szczerze mówiąc nie wiem, co umieścić w polu adresu zwrotnego URL:) Czy możesz podać mi wskazówki, jak to skonfigurować? (opublikowany link nie daje mi żadnej wskazówki) – janesconference
Niestety, mój błąd, wygląda na to, że moja firma odfiltrowuje cały ruch do Dropbox od niedawna. Będzie wyglądać, kiedy wrócę do domu :) –
To jest to, co skonfigurowałem dla mojej strony, która używa API GH: Nazwa: ivanzuzak.info URL: ivanzuzak.info Adres zwrotny URL: ivanzuzak.info Wszystko jest więc takie samo, jeśli po prostu wywołujesz interfejs API ze strony statycznej, która jest twoją sytuacją. W rzeczywistości nie potrzebujesz adresu wywołania zwrotnego dla scenariusza użycia, ponieważ chcesz tylko włączyć CORS dla domeny, a nie używać OAuth. –