Frage

Ich möchte Informationen aus meinem Stapelüberlaufprofil als JSON mit der API abrufen.

Also benutze ich diesen Link http: /api.stackoverflow.com/1.0/users/401025/.

Aber wenn ich die Anfrage stelle, erhalte ich eine Datei mit den JSON -Daten. Wie gehe ich mit dieser Datei mit AJAX um?

Hier ist mein Code (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>

Die Warnung wird nie abgefeuert und req.responseText scheint leer zu sein. Irgendwelche Ideen?

War es hilfreich?

Lösung

Notiz: Sie können AJAX nicht verwenden, um auf eine andere Domain zuzugreifen. (Dies nennt man die gleichdomänen-Richtlinie.)

Die Stackoverflow -API unterstützt jedoch JSONP -Rückrufe. Hier finden Sie also eine Lösung:

Laden Sie das Skript über a <script> Schild.

Erstellen Sie eine Funktion, die genau das tut:

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
}

Richten Sie die Rückruffunktion ein:

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

Lade es!

load_script('http://api.stackoverflow.com/1.0/users/401025/?jsonp=soResponse');
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top