Я размещаю некоторые файлы JSON на страницах Github, но я не могу использовать $.getJSON для их извлечения, если они не принадлежат к одному и тому же домену.
Есть ли способ включить CORS для страниц Github?
Ответ 1
Теперь страницы Github теперь имеют CORS.
Заголовок CORS:
Access-Control-Allow-Origin: *
По умолчанию добавляется все ответы от Github-страниц!
Ответ 2
В качестве обходного решения можно использовать JSONP, но он все равно немного боль, потому что файлы являются статическими, и каждый из них нуждается в уникальном методе обратного вызова.
Другой альтернативой было бы хранить файлы в Gists и использовать API Github, который работает с CORS.
Третья возможность - не хранить файлы на страницах Github и вместо этого размещать их в дистрибутиве S3/Cloudfront с включенным CORS.
Ответ 3
Это возможно с API, но у него есть предел...
"Для запросов, использующих Basic Authentication или OAuth, вы можете составлять до 5000 запросов в час. Для неавторизованных запросов ограничение скорости позволяет вам составлять до 60 запросов в час. Запросы, не прошедшие проверку подлинности, связаны с вашим IP-адресом и а не пользователь, делающий запросы."
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)
}