2017-03-14 4 views
0

Ich versuche, eine JSON-Antwort von Kraken API zu bekommen, um die Currens zu konvertieren, aber alle Methoden, die ich gefunden habe (auch hier in stackoverflow), obwohl sie für andere Seiten funktionieren (wie "https://api.cryptonator.com/api/currencies" oder die im Stackoverflow Thread "/ questions/12460378/how-to-get-json-von-url-in-javascript" besprochen, funktionieren sie überhaupt nicht mit Kraken (Beispiel "https://api.kraken.com/0/public/Assets"), Bekomme ich keine Antwort, da die URL defekt ist, aber durch den Zugriff mit dem Browser kann ich das JSON-Objekt deutlich sehen.Ich kann keine JSON-Antwort von URL mit Javascript

Ich benutze reines Javascript, weil ich in WordPress arbeite, aber wenn nötig, kann ich jquery hinzufügen (dachte, ich würde mit js fortfahren, um andere Zeit nicht zu verschwenden).

Untill jetzt habe ich versucht:

function httpGet(theUrl) 
{ 
    var xmlHttp = null; 

    xmlHttp = new XMLHttpRequest(); 
    xmlHttp.open("GET", theUrl, false); 
    xmlHttp.send(null); 
    return xmlHttp.responseText; 
}  
prove = eval('(' + httpGet("https://api.kraken.com/0/public/Assets") + ')'); 

sowohl Arbeiten mit cryptonator und Yahoo (das zweite Beispiel), aber nicht mit kraken.

var getJSON = function(url, callback) { 
    var xhr = new XMLHttpRequest(); 
    xhr.open('GET', url, true); 
    xhr.responseType = 'json'; 
    xhr.onload = function() { 
     var status = xhr.status; 
     if (status == 200) { 
     callback(null, xhr.response); 
     } else { 
     callback(status); 
     } 
    }; 
    xhr.send(); 
}; 

getJSON('https://api.kraken.com/0/public/Assets', 
function(err, data) { 
    if (err != null) { 
    alert('Something went wrong: ' + err); 
    } else { 
    alert('Your query count: ' + data); 
    } 
}); 

Gleich wie zuvor. Ich habe auch versucht mit jquery aber das Ergebnis ist das gleiche, das kraken url ist die einzige Arbeit nicht

$.getJSON("https://api.kraken.com/0/public/Assets", function(data) { 
    // Get the element with id summary and set the inner text to the result. 
    $('#summary').text(data.result); 
}); 

Ich kann wirklich nicht verstehen, warum ich nicht verwalten kann von dieser Seite dieses verdammte JSON-Objekt zu erhalten und zu analysieren während die anderen gut funktionieren, auch unter Berücksichtigung der Tatsache, dass es mir eine Antwort gibt, wenn ich den Link über den Browser eingeben.

Vielen Dank im Voraus für die Hilfe

+2

Es ist, weil diese API nicht den 'Access-Control-Allow-Origin: *' Header gesetzt hat, so dass Anfragen über Ajax nicht erlaubt. – JJJ

+0

Wie @JJJ erwähnt hat, erhalten Sie eine Fehlermeldung, in der Sie erklären, warum Sie Ihre Anfrage nicht bearbeiten können, wenn Sie Ihre Tools in Ihrem bevorzugten Browser öffnen. 'XMLHttpRequest kann https://api.kraken.com/0/public/Assets nicht laden. Kein 'Access-Control-Allow-Origin'-Header ist auf der angeforderten Ressource vorhanden. Origin 'http: // localhost: 8000' ist daher nicht erlaubt. " – Dan

+0

Wie von @JJJ erwähnt, ist die von Ihnen angerufene Domäne nicht so konfiguriert, dass Anfragen über JS-Code zulässig sind (durch Einschließen von CORS-Headern in die Antwort). Sie können dies anhand des Konsolenfehlers in [this fiddle] (https://jsfiddle.net/gzf0cvja/) sehen. Um dies zu beheben, müssen Sie entweder die CORS-Header hinzufügen - vorausgesetzt, Sie haben Zugriff auf die api.kraken.com-Domain - oder stattdessen Ihre Anfrage vom Server-Side-Code –

Antwort

0

Das Hauptproblem ist:

No 'Access-Control-Allow-Origin' header is present on the requested resource.

Wenn Sie verwenden möchten JSONP, muss der Server eine JSONP api haben. Klicken Sie auf here, um die Unterstützung des Servers anzuzeigen.

Verwandte Themen