我想使用API从我的Stack Overflow配置文件中检索信息作为
JSON.
所以我用这个链接http:/api.stackoverflow.com/1.0/users/401025/.@H_403_3@
但是当我发出请求时,我得到一个包含JSON数据的文件.
如何使用Ajax处理该文件?@H_403_3@
这是我的代码(http://jsfiddle.net/hJhfU/2/):@H_403_3@
<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似乎是空的.有任何想法吗?@H_403_3@
解决方法
注意:您无法使用Ajax访问其他域. (这称为
same-domain policy.)
但是,StackOverflow API支持JSONP回调,因此这是一个解决方案:@H_403_3@
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); }
加载它!@H_403_3@
load_script('http://api.stackoverflow.com/1.0/users/401025/?jsonp=soResponse');