我試圖從Kraken api獲取JSON響應來轉換currences,但是我發現了所有的方法(也在這裏在stackoverflow中),儘管它們適用於其他網站(像「https://api.cryptonator.com/api/currencies」或在stackoverflow線程「/ questions/12460378/how-to-get-json-from-url-in-javascript」中討論的那個),它們根本不能用kraken工作(例如「https://api.kraken.com/0/public/Assets」 ),我沒有得到任何迴應,因爲URL被破壞了,但通過使用瀏覽器訪問它,我可以清楚地看到JSON對象。使用javascript無法獲取來自URL的JSON響應
我使用純javascript,因爲我在wordpress中工作,但如果有必要,我可以添加jquery(以爲我不會浪費其他時間,我會繼續使用js)。
,直到如今,我想:
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") + ')');
既cryptonator和雅虎(第2例)工作,但與海怪。
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);
}
});
和以前一樣。我也試圖與jQuery的,但結果是一樣的,海妖網址是唯一沒有工作
$.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);
});
我真的不明白,爲什麼我不能設法得到,並從該網站解析這個該死的JSON對象而其他人工作得很好,同時考慮到如果我通過瀏覽器進入鏈接,它會給我一個迴應。
在此先感謝您的幫助
這是因爲該API沒有'Access-Control-Allow-Origin:*'頭部集合,所以它不允許通過Ajax發送請求。 – JJJ
正如@JJJ所提到的,如果你在你選擇的瀏覽器(我的Chrome)上打開你的開發工具,你會得到一個錯誤,解釋你爲什麼不能滿足你的請求。 XMLHttpRequest無法加載https://api.kraken.com/0/public/Assets。請求的資源上沒有「Access-Control-Allow-Origin」標題。因此,'http:// localhost:8000'不允許訪問。' – Dan
正如@JJJ所提到的,您調用的域未配置爲允許通過JS代碼發送請求(通過在響應中包含CORS頭部)。你可以在[this fiddle](https://jsfiddle.net/gzf0cvja/)中的控制檯錯誤中看到這個。要解決這個問題,你需要添加CORS頭文件 - 假設你有權訪問api.kraken.com域 - 或者改爲從服務器端代碼發出請求 –