javascript – 使用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似乎是空的.有任何想法吗?

解决方法

注意:您无法使用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');

相关文章

事件冒泡和事件捕获 起因:今天在封装一个bind函数的时候,发现el.addEventListener函数支持第三个参数...
js小数运算会出现精度问题 js number类型 JS 数字类型只有number类型,number类型相当于其他强类型语言...
什么是跨域 跨域 : 广义的跨域包含一下内容 : 1.资源跳转(链接跳转,重定向跳转,表单提交) 2.资源...
@ &quot;TOC&quot; 常见对base64的认知(不完全正确) 首先对base64常见的认知,也是须知的必须有...
搞懂:MVVM模式和Vue中的MVVM模式 MVVM MVVM : 的缩写,说都能直接说出来 :模型, :视图, :视图模...
首先我们需要一个html代码的框架如下: 我们的目的是实现ul中的内容进行横向的一点一点滚动。ul中的内容...