我想要的很简单。是否有任何方法(包括解决方法)使这项工作?
function loadXMLDoc() {
var request = new XMLHttpRequest();
var gistRawFileUrl = 'https://gist.github.com/kentcdodds/5822336/raw/6ef128c8c8d6fe416782d969efa95d36e0acf374/KentsBlog.md';
request.onreadystatechange = function() {
if (request.readyState === 4 && request.status === 200) {
var gistFileContent = request.responseText;
doSomethingCool(gistFileContent);
}
};
request.open('GET', gistRawFileUrl, true);
request.send();
}
现在,如果我在控制台中执行此操作,我将获得:
XMLHttpRequest cannot load https://gist.github.com/kentcdodds/5822336/raw/6ef128c8c8d6fe416782d969efa95d36e0acf374/KentsBlog.md. Origin http://stackoverflow.com is not allowed by Access-Control-Allow-Origin.
这是有道理的,而且我知道我不会让GitHub打开他们的访问控制,但是如果有解决这个问题或者我做错了什么就会很棒。
我意识到你可以通过点击JSONP端点来获取文件的内容,但这不会给你换行符,所以曾经这样:
Hello World!
You
Rock!
现在是这样的:
Hello World!YouRock!
提前致谢。
编辑新行的问题是我需要修复的问题,而不是Gist的事情。
答案 0 :(得分:9)
查看此答案:https://stackoverflow.com/a/10454873/240963
API端点将为您提供Gist中每个文件的内容,包括格式。唯一的缺点是,即使您已经知道原始文件的URL,也需要传输额外的数据。
我们可以简化原始答案中的代码,因为您不想解析JSON并且您可能知道文件名:
$.ajax({
url: 'https://api.github.com/gists/'+gistid,
type: 'GET',
dataType: 'jsonp'
}).success( function(gistdata) {
var content = gistdata.data.files[filename].content;
DoSomethingWith(content)
}).error( function(e) {
// ajax error
});
将JSONP与原始XHR一起使用有点复杂,但您可以使用something lighter而不是jQuery。