在javascript中从外部源获取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)); }); 

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

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

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

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

以下url是否不正确JSON?

谢谢

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

虽然您提供的其他url没有,但您将收到如下错误:

XMLHttpRequest无法加载https://api.mintpal.com/v1/market/summary/ 。 请求的资源上不存在“Access-Control-Allow-Origin”标头。 因此,不允许来源“ http://fiddle.jshell.net ”访问。

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

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

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

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

有关更多信息,请参阅此链接