【问题标题】:GitHub API UsersGitHub API 用户
【发布时间】:2015-09-17 16:56:28
【问题描述】:

我有一个关于 GitHub API 的问题。 我刚刚开始学习它。对不起我的错误。

我需要获取使用 GitHub API 的用户列表。但我不知道该怎么做:(

非常感谢您的帮助!

这就是我们现在所拥有的:

<!doctype html>
<html lang="en-US">
<head>
  <meta charset="utf-8">
  <meta http-equiv="Content-Type" content="text/html">
  <title>GITHUB - API Test</title>
  <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
</head>

<body>
    <div id="ghapidata"></div>
<script type="text/javascript">
$(function() {
	$('#ghapidata').html('Loading...');
	var username = $('#ghusername').val();
	var requri = 'https://api.github.com/users/' + "Test";
	var repouri = 'https://api.github.com/users/' + "Test" + '/repos';
	requestJSON(requri, function(json) {
		var fullname = json.name;
		var username = json.login;
		var aviurl = json.avatar_url;
		var profileurl = json.html_url;
		var location = json.location;
		var followersnum = json.followers;
		var followingnum = json.following;
		var reposnum = json.public_repos;
		var email = json.email;
		if (fullname == undefined) {
			fullname = username;
		}
		var outhtml = '<h2>'+ 'Username:' + fullname + ' <span class="smallname">(@<a href="' + profileurl + '" target="_blank">' + username + '</a>)</span></h2>';
		outhtml = outhtml + '<a href="' + profileurl + '" target="_blank"><img src="' + aviurl + '" width="80" height="80" alt="' + username + '"></a>';
		outhtml = outhtml + '<p>Subscribers: ' + followersnum + ' - Subscribe: ' + followingnum +'</p>';
		outhtml = outhtml + '<div class="clearfix">';
		var repositories;
		$.getJSON(repouri, function(json) {
			repositories = json;
			outputPageContent();
		});

		function outputPageContent() {
				outhtml = outhtml + '</ul></div>';
			$('#ghapidata').html(outhtml);
		}
	});

	function requestJSON(url, callback) {
		$.ajax({
			url: url,
			complete: function(xhr) {
				callback.call(null, xhr.responseJSON);
			}
		});
	}
});
</script>
</body>
</html>

【问题讨论】:

  • 嗨!欢迎来到堆栈溢出。请添加一些关于您得到什么结果或错误以及您想要什么结果的信息。这将帮助人们了解实际问题是什么。
  • 您好,没问题。我的任务:从这里显示用户列表:api.github.com/users,以易于理解的形式(姓名、头像)。目前,我只能带一位用户。

标签: api github github-api


【解决方案1】:

除非您的 html 托管在 api.github.com 的某个地方,或者您采取其他特定步骤,否则这将不起作用。

阅读Same-Origin policy

在计算中,同源策略是 Web 应用安全模型中的一个重要概念。根据该策略,网络浏览器允许包含在第一个网页中的脚本访问第二个网页中的数据,但前提是两个网页具有相同的来源。来源定义为 URI 方案、主机名和端口号的组合。1 此策略可防止一个页面上的恶意脚本通过该页面的文档对象模型获取对另一个网页上敏感数据的访问权限。

出于安全原因,浏览器不允许 javascript 向其他域发出请求,除非明确允许。

另见:

【讨论】:

  • 不,我有自己的服务器。也就是从这个api.github.com/users中获取信息,并以可理解的形式提供给人们。无法实施?
  • 一种可能的解决方案是通过您的服务器将请求代理到 github api。你读过我给你的链接吗?
  • 假设您的页面位于www.myserver.com/mypage。您只能向 www.myserver.com 上的其他 url 发出 ajax 请求。这是为了防止例如向www.mybank.com 发出请求并伪装成银行的网站。
  • 有了AJAX,我能实现任务吗?
  • 您已经在代码 sn-p 中使用了 ajax。很抱歉,您似乎需要先阅读更多有关 ajax 的信息,然后才能完成此任务。您的问题太宽泛,无法在这里回答。
猜你喜欢
  • 2018-08-22
  • 1970-01-01
  • 2014-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多