我想使用 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
似乎是空的。有什么想法吗?
最佳答案
注意:您不能使用 Ajax 访问另一个域。 (这称为 same-domain policy。)
但是,StackOverflow API 支持 JSONP 回调,所以这里有一个解决方案:
通过 <script>
加载脚本标签。
创建一个执行此操作的函数:
function load_script(src) {
var scrip = document.createElement('script');
scrip.src = src;
document.getElementsByTagName('head')[0].appendChild(scrip);
return scrip; //just for the heck of it
}
设置回调函数:
function soResponse(obj) {
alert(obj.users[0].reputation);
}
加载它!
load_script('http://api.stackoverflow.com/1.0/users/401025/?jsonp=soResponse');
关于javascript - 使用 StackOverflow API 检索 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4553690/