我想使用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');