在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请求的来源。
有关更多信息,请参阅此链接