Избавься от этого прокси - PullRequest
4 голосов
/ 08 января 2012

Я написал виджет js для перечисления репозиториев github на любом веб-сайте с одной строкой js: http://gitview.logicalcognition.com

В настоящее время gitview.js обращается к gitview.php (который я размещаю удаленно), который, в свою очередь, обращается кapi.github.com, чтобы получить информацию о пользователе / ​​репо.Первоначально я просто делал XHR GET непосредственно на api.github.com, а не через прокси, но я придерживался той же политики происхождения.

Я пытался использовать CORS или JSONP, но согласно http://developer.github.com/v3/ это работает только в том случае, если исходный домен «зарегистрирован как приложение OAuth».Я не хотел, чтобы разработчики делали это только для того, чтобы использовать виджет.

Есть предложения?Я что-то упустил?

1 Ответ

2 голосов
/ 08 января 2012

В документации указано, что зарегистрированный домен необходим для CORS (используется, если вы хотите сделать прямой XHR), но не JSON-P.В JSON-P вы вставляете тег сценария, подобный этому, программно (используя document.write или манипулирование DOM):

<script type="text/javascript"
        src="https://api.github.com/some_request?callback=foo"
></script>

Это затем вызовет глобальную функцию foo с возвращенными данными в видеаргумент.Поскольку это тег сценария, а не запрос XHR, политика того же источника не применяется и авторизация CORS не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...