Javascript jQuery不适用于getJSON
我正在尝试使用Bitstamp API。但不知何故,它不起作用 代码如下:Javascript jQuery不适用于getJSON,javascript,jquery,Javascript,Jquery,我正在尝试使用Bitstamp API。但不知何故,它不起作用 代码如下: $.getJSON("https://www.bitstamp.net/api/ticker/", function(person){ $.each(person, function(key, value){ document.write(key+":"+value+"<br />"); }); }); $.getJSON(“https://www.bitstamp.net/api/ticke
$.getJSON("https://www.bitstamp.net/api/ticker/", function(person){
$.each(person, function(key, value){
document.write(key+":"+value+"<br />");
});
});
$.getJSON(“https://www.bitstamp.net/api/ticker/“,职能(人){
$。每个(人、功能(键、值){
文件。写入(键+“:“+值+”
);
});
});
下面是它的JSFIDLE:
我不明白这里出了什么问题。当我在浏览器上运行API url时,它可以正常工作。但是,当我尝试使用jQuery访问它的参数时,它不起作用
我试图用其他人的API url(如MtGox)替换url,MtGox工作得非常好。但是Bitstamp没有
有人能告诉我出了什么问题吗
我会非常感激的
谢谢。您正在尝试从另一个域访问数据。这称为跨域请求,通常是不允许的。有一种称为jsonp的技术,您应该检查bitstamp是否支持这种技术。如果不是,那么你应该做一个代理。所谓代理,我指的是一些本地文件,它使用一些服务器端技术来发出get请求。您可以在php、nodejs或任何您正在使用的工具中实现这一点。然后js代码将向服务器上的文件发出请求
$.ajax({
dataType: "json",
url: "proxy.php",
data: { url: "https://www.bitstamp.net/api/ticker/" },
success: function(result) {
$.each(person, function(key, value){
// ...
});
}
});
因此,只需传递您要从中获取数据的url。您在控制台中看到了什么错误?如果您查看网络选项卡和该呼叫的响应,您会看到什么??bitstamp不支持jsonp格式,因此很抱歉,您无法获取所需内容。这是一个跨域请求,因此不允许。看起来bitstamp也不提供jsonp,所以我认为你运气不好。
document.write在页面加载后调用时是文档杀手。它将立即停止并杀死您的Javascript代码。。。我并不感到惊讶,它不工作的方式是一个反向代理是可行的吗?非常有用的信息。将尝试此操作,因为bitstamp不支持jsonp。谢谢。你不会像这样成功的。。。但是去做吧:-)@devnull69我同意这个文件。写下来我就把它删除,但是为什么你认为它不起作用。对该url执行curl请求并获取json非常容易。现在document.write已被删除,它将正常工作(假定proxy.php
已正确实现),这取决于您的确切代码。如果您执行类似于document.getElementById('elementid').innerHTML=“您的输出在这里”
的操作,应该可以