Pregunta

Quiero recuperar la información de perfil de desbordamiento de pila como JSON mediante la API.

Así que uso este enlace http: /api.stackoverflow.com/1.0/ usuarios / 401025 / .

Pero cuando hago la solicitud consigo un archivo que contiene los datos JSON. ¿Cómo puedo lidiar con ese archivo usando Ajax?

Aquí está mi código ( 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>

La alerta no se dispara y req.responseText parece estar vacío. Algunas ideas?

¿Fue útil?

Solución

Nota: No se puede usar Ajax para acceder a otro dominio. (Esto se llama el política del mismo dominio .)

Sin embargo, la API StackOverflow apoya devoluciones de llamada JSONP, por lo que aquí es una solución:

Cargar en la secuencia de comandos a través de una etiqueta <script>.

Crea una función que hace precisamente eso:

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
}

Configurar la función de devolución de llamada:

function soResponse(obj) {
   alert(obj.users[0].reputation);
}

De carga!

load_script('http://api.stackoverflow.com/1.0/users/401025/?jsonp=soResponse');
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top