使用 StackOverflow API 检索 JSON
我想使用 API 从我的 Stack Overflow 配置文件中以 JSON 形式检索信息。
所以我使用此链接 http:/api.stackoverflow.com/1.0/users/401025 /。
但是当我发出请求时,我得到一个包含 JSON 数据的文件。 如何使用 Ajax 处理该文件?
这是我的代码(http://jsfiddle.net/hJhfU/2/):
<html>
<head>
<script>
var req;
getReputation();
function getReputation(){
req = new XMLHttpRequest();
req.open('GET', 'http://api.stackoverflow.com/1.0/users/401025/');
req.onreadystatechange = processUser;
req.send();
}
function processUser(){
var res = JSON.parse(req.responseText);
alert('test');
}
</script>
</head>
警报是从未触发,并且 req.responseText
似乎是空的。有什么想法吗?
I want to retrieve information from my Stack Overflow profile as JSON using the API.
So I use this link http:/api.stackoverflow.com/1.0/users/401025/.
But when I make the request I get a file containing the JSON data.
How do I deal with that file using Ajax?
Here is my code (http://jsfiddle.net/hJhfU/2/):
<html>
<head>
<script>
var req;
getReputation();
function getReputation(){
req = new XMLHttpRequest();
req.open('GET', 'http://api.stackoverflow.com/1.0/users/401025/');
req.onreadystatechange = processUser;
req.send();
}
function processUser(){
var res = JSON.parse(req.responseText);
alert('test');
}
</script>
</head>
The alert is never fired and req.responseText
seems to be empty. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
注意:您不能使用 Ajax 访问其他域。 (这称为同域策略。)< /strong>
但是,StackOverflow API 支持 JSONP 回调,因此这里有一个解决方案:
通过
标记加载脚本。
创建一个仅执行以下操作的函数那:
设置回调函数:
加载它!
Note: You cannot use Ajax to access another domain. (This is called the same-domain policy.)
However, the StackOverflow API supports JSONP callbacks, so here is a solution:
Load in the script via a
<script>
tag.Create a function that does just that:
Set up the callback function:
Load it!
对于任何未来的读者:
我想在不使用 oAuth 和整个库的情况下获得我的声誉。感谢 Sebastien Horin 的回答,我可以轻松使用以下内容:
注意:这使用 API v2.3。
For any future readers:
I wanted to get my Reputation without using oAuth and a whole library to do so. Thanks to Sebastien Horin's answer I easily could using the following:
Note: this uses API v2.3.
有一个新的API(替换USER_ID)
there is a new API ( replace USER_ID )