JSON mit Stackoverflow -API abrufen
-
13-10-2019 - |
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?
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');