Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery不适用于getJSON_Javascript_Jquery - Fatal编程技术网

Javascript jQuery不适用于getJSON

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

我正在尝试使用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/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=“您的输出在这里”
的操作,应该可以