XHR访问github的参与信息

时间:2012-01-03 19:36:52

标签: javascript github xmlhttprequest

我正在编写一个简单的小部件,它会像github上的那个一样呈现画布参与图。

它使用http://github.com/ [user] / [repo] / graphs / participation

中的数据

小部件效果很好,基本上完成了。我遇到的唯一问题是当我尝试通过XHR从上面的链接中检索json数据时(而不是像以前一样复制和粘贴到小部件中),我遇到了相同的原始访问控制问题。

有没有办法可以通过XHR或一些隐藏的github api功能来访问这些信息?

1 个答案:

答案 0 :(得分:1)

我相信Github通过其CORS支持JSONP和API。您还可以设置服务器端代理,通过该代理向同源页面发出XHR请求,然后向Github发出服务器端请求。


要回答有关代理的问题,是的,这非常简单。两年前我使用Python和Tornado实际上做过这件事。我意识到这不是PHP,但它读得非常接近英语,让你了解它是如何工作的。这个特殊的代理人正在返回一个原始的要点。

# /proxy/gist
class GetGistHandler(BaseHandler):
    def get(self, id, filename):
        url = 'http://gist.github.com/raw/%s/%s' % (id, urllib.quote(filename))
        resp = urlfetch.fetch(url)
        self.finish(resp.content)

然后可以使用

的内容
$.ajax({
    url: '/proxy/gist',
    dataType: 'JSON',
    data: {
        id: $('#id').val(),
        filename: $('#filename').val()
    },
    success: function(json) {
        // ...
    }
});