在javascript中从外部源获取json

时间:2014-06-10 07:37:22

标签: javascript jquery json

Json发布了javascript和jquery。 尝试使用javascript加载一些JSON。

我使用它:

请在此处查看:http://jsfiddle.net/5pjha/789/

var url = "http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true";

$.getJSON(url, function (json) {
    alert(JSON.stringify(json.results));
});

但它可以在以下网址上运行,为什么会这样?

https://poloniex.com/public?command=return24hVolume

https://bittrex.com/api/v1/public/getmarkets

https://api.mintpal.com/v1/market/summary/

以下网址是否不正确JSON?

由于

3 个答案:

答案 0 :(得分:1)

google的api将 Access-Control-Allow-Origin 标头设置为*,因此您可以通过跨域访问它。

虽然您提供的其他网址没有,但您会收到如下错误:

  

XMLHttpRequest无法加载https://api.mintpal.com/v1/market/summary/。   No' Access-Control-Allow-Origin'标题出现在请求的上   资源。起源' http://fiddle.jshell.net'因此是不允许的   访问。

答案 1 :(得分:0)

我认为问题在于您请求JSON的服务器是否启用了跨域资源共享(CORS)。

您可以在他们设置的Google服务标题中看到Access-Control-Allow-Origin:*这不是您列出的其他网址的情况。

要解决此问题,您需要某种形式的代理,以便您可以从同一域上的服务器或启用CORS的服务器请求。

答案 2 :(得分:0)

对于任何服务器的ajax请求,您需要为客户端定义Access-Control-Allow-Origin标头。这是没有给定的。您需要在可以请求的服务器中定义XMLHttp请求的来源。

有关详细信息,请参阅此link