所以我对此有点新意,到目前为止我的代码还没有工作,但如果有人能告诉我我错过了什么,我将不胜感激。
基本上,我正在尝试调用github的api,它返回json数据。我最终想要解析它并仅显示特定信息,但目前我只是想在我的浏览器中显示数据。以下是我到目前为止的情况:
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
url: "https://api.github.com/repos/VonC/gitolite/git/refs/tags",
dataType: "jsonp", // I'm under the impression i should use jsonp, since this is a cross domain call
success: function (returndata)
{
$('.result').html(returndata);
alert('Load was performed.');
}
});
});
</script>
url肯定有效:当你使用CURL调用它时,会返回以下json数据:
[
{
"object": {
"type": "commit",
"sha": "9accde83842523e18de320fc2f0a8efeaebef27b",
"url": "https://api.github.com/repos/jeffreycwitt/jeffswebpage/git/commits/9accde83842523e18de320fc2f0a8efeaebef27b"
},
"url": "https://api.github.com/repos/jeffreycwitt/jeffswebpage/git/refs/heads/master",
"ref": "refs/heads/master"
}
]
感谢你给我的任何建议。
答案 0 :(得分:5)
dataType
应该是jsonp
而不是jasonp
。更好的是,它应该只是json
,因为你没有进行JSONP调用。
您应该注意的另一件事是returndata
将是来自JSON表示的实际解析的JavaScript对象,而不是作为字符串的JSON对象。这意味着您无法直接将其放入.result
div。
以下似乎对我有用:
$.ajax({
url: "https://api.github.com/repos/VonC/gitolite/git/refs/tags",
dataType: "json",
success: function (returndata)
{
$("#result").html(returndata[0]["object"]["sha"]);
alert('Load was performed.');
}
});
答案 1 :(得分:1)
返回的数据不是html,它是一个json对象,你必须直接引用这些字段或循环它们。
您可以像这样访问数据(虽然值得注意的是使用属性名称对象相当混乱,但它可以是任何字符串))
returndata[0].object.sha
(并将jason改为json)