Подтвердить что ты не робот

Совместное использование ресурсов на страницах GitHub

Есть ли способ включить совместное использование ресурсов Cross-Origin (CORS) для статической страницы, размещенной на GitHub Pages, чтобы разрешать запросы с кросс-началом в Javascript?

Например, можем ли мы называть GH Pages каким-то образом добавлять эти заголовки HTTP-ответов:

Access-Control-Allow-Origin:*  
Access-Control-Allow-Methods:GET,POST
Access-Control-Max-Age: 1000
Access-Control-Allow-Headers:*

Не удалось найти что-либо в своей документации, и это...

... GitHub Pages не поддерживает файлы конфигурации сервера клиентов таких как .htaccess или .conf...

... не кажется очень многообещающим - или есть способ?

4b9b3361

Ответ 1

РЕДАКТИРОВАТЬ: Yay! Похоже, теперь страницы GitHub поддерживают CORS: https://twitter.com/invisiblecomma/status/575219895308324864

Это можно проверить, свернув запрос на enable-cors.org(который размещен на страницах GitHub). Выполнение этой команды: curl -v enable-cors.org > /dev/null возвращает заголовок Access-Control-Allow-Origin: *.

Невозможно поддерживать CORS на страницах GitHub, хотя мне бы хотелось увидеть эту функцию. Мы размещаем http://enable-cors.org на страницах GitHub, и мы не можем включить CORS на самом сайте:)

Ответ 2

Вы можете использовать прокси-сервер CORS.
http://cors.io/  работал для меня.

Обычный запрос:

$.getJSON('https://blockchain.info/stats?format=json',function(data){})

Запрос с прокси (просто добавьте http://cors.io/? в URL)

$.getJSON('http://cors.io/?https://blockchain.info/stats?format=json',function(data){})

ОБНОВЛЕНИЕ: Документ API обновлен, вам просто нужно добавить префикс URL к https://cors.io/?.

Ответ 3

К вашему сведению, GitHub Pages теперь поддерживают CORS (по крайней мере, в некоторых ситуациях). В этом случае пользовательские домены с голыми URL-адресами (без поддоменов www или github). Это означает использование записи A и избегание их кэширования CDN.

Теперь, когда я захожу на enable-cors.org, я вижу заголовок Access-Control-Allow-Origin: *, возвращаемый на всех ресурсах (из вкладки сети инструментов разработчика браузера). И в Chrome, и в Firefox.

Я использую это на https://isthetubeonstrike.com для доступа к кросс-домену файлов JSON из мобильного веб-приложения. SSL/TLS предоставляется через CloudFlare BTW.

Ответ 4

Вы можете эмулировать CORS на странице Github с помощью библиотек javascript, таких как https://github.com/jpillora/xdomain

Ответ 5

Несколько дней назад я заполнил билет в службу поддержки тем, что запросы CORS к страницам GitHub в порядке.

Получение контента с другой страницы, о чем, как кажется, и спрашивается в исходном сообщении, означает, что на сервере другой страницы должны быть настроены запросы CORS, иначе он заблокирует ваши запросы. Обычно сайты имеют общедоступные API для решения этой проблемы, если есть реальная необходимость получать от них контент (например, MediaWiki для Википедии).