javascript - 使用 StackOverflow API 检索 JSON

标签 javascript ajax stackexchange-api

我想使用 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/

相关文章:

stackexchange-api - 如何通过stackexchange api调用检索stackoverflow标签使用计数?

javascript - 在 vuejs 中完成 @sumit.prevent 之后,有什么方法可以调用 onsumit 事件吗?

javascript - 垂直显示图像直到页面末尾,然后在 100% 高度响应 div 内继续水平显示

javascript - 无法发送到 $_POST 但 $_SESSION 表示其他内容

javascript - 如何解压缩(解压缩)NodeJS 请求的模块 gzip 响应正文?

javascript - gwt 请求(通过 RequestBuilder)导致响应被视为 JavaScript

python - Py-StackExchange 按标签过滤

在 Javascript 中使用设置间隔函数在 IE 中无法正确调用 PHP

javascript - 将数据传递给 Jquery Ajax 的正确方法

stackexchange-api - Stack Exchange API 获取影响/达到的人数