Pytanie Czy istnieje sposób na włączenie CORS na stronach Github?


Obsługuję niektóre pliki JSON na stronach Github, ale nie mogę ich używać $.getJSON aby je odzyskać, chyba że pochodzą z dokładnie tej samej domeny.

Czy istnieje sposób na włączenie CORS dla stron Github?


14
2017-09-20 18:18


pochodzenie




Odpowiedzi:


W celu obejścia tego problemu można użyć JSONP, ale nadal jest to bardzo uciążliwe, ponieważ pliki są statyczne, a każdy z nich potrzebuje unikalnej metody wywołania zwrotnego.

Inną alternatywą byłoby przechowywanie plików w Gists i korzystanie z API Github, który współpracuje z CORS.

Trzecią możliwością jest nie przechowywanie plików na stronach Github, a zamiast tego hostowanie ich w dystrybucji S3 / Cloudfront z włączoną opcją CORS.


13
2017-09-20 18:18





Github Pages ma teraz włączoną funkcję CORS.

Nagłówek CORS:

Access-Control-Allow-Origin: *

Domyślnie jest dodawany do wszystkich odpowiedzi ze stron Githuba!


9
2018-02-09 19:07





Jest to możliwe dzięki API, ale ma limit ...

"W przypadku żądań używających uwierzytelniania podstawowego lub protokołu OAuth można przesłać maksymalnie 5000 żądań na godzinę. W przypadku nieuwierzytelnionych żądań limit stawek pozwala na wykonanie do 60 żądań na godzinę. Nieuwierzytelnione żądania są powiązane z adresem IP, a nie użytkownikiem składanie wniosków. "

var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.github.com/repos/jimmywarting/diezyweb/contents/index.html?ref=gh-pages');
xhr.setRequestHeader("Accept", "application/vnd.github.3.raw");
xhr.send();

xhr.onload = function(e){
   alert(xhr.response)
}


1
2017-09-21 09:36



W pytaniu konkretnie pytałem o Github Pages, a nie o ogólne API Githuba, ale dzięki! - Daniel X Moore
Chciałbym również wiedzieć, że ... ale tutaj jest wskazówka: możesz zmienić master / gh-pages / etc z parametrem ref - Endless
Tak, ale nadal nie możesz, o ile wiem, włączyć CORS dla zawartości hostowanej na Github Pages. Na przykład jakakolwiek rzecz na somerepo.github.io/data.json nie będzie dostępna. Korzystanie z API Github "działa", ale jest to kolejne obejście, a nie rozwiązanie. - Daniel X Moore