如何从外部URL访问json内容
我是jquery和javascript的新手,我一直试图从外部链接访问json文件的内容,但没有运气。 json文件在下面的链接中生成。如何从外部URL访问json内容
我注意到,有几个例子也有类似的这种“www.samplesite.com/testfile.json”一个url然而,正如你可以在上面看到,网址是不是这样。在Chrome中打开链接可直接转到json文件内容,但是在IE中打开文件会询问您是否要保存文件“A10,A11.json”。
我想要做的就是能够在HTML中显示json文件内容。有些人可以给我一个简单的例子。
谢谢
$.ajax({
url: 'http://api.wmata.com/StationPrediction.svc/json/GetPrediction/A10,A11?api_key=hadtcpbh3w5xjbtyqrzgm88x',
dataType: 'jsonp',
success: function(data){// your code here
}
});
这对我有用。 – 2014-09-04 20:47:28
@evilunix你是男人!非常感谢你,它的工作=) – speedracer2003 2014-09-04 21:28:24
您可以访问JSON只有具有JSON的网站允许跨源资源共享(CORS)。找出是否可用,以及是否发布代码。
如果有人不喜欢答案,他们应该告诉为什么,而不是没有理由的投票,它可以让每个人都学习。 – 2014-09-04 20:35:06
确实。有人低估了我的回答,即使它有效......奇怪。 – evilunix 2014-09-04 20:41:41
我没有权力downvote,但我怀疑这是因为你是不正确的。还有其他方法可以制作跨域请求,而不仅仅是CORS。 – 2014-09-04 20:45:55
$.getJSON('http://api.wmata.com/StationPrediction.svc/json/GetPrediction/A10,A11?api_key=hadtcpbh3w5xjbtyqrzgm88x', function(data) {
//data is the JSON string
});
为了取回服务器JSON自己的域名之外,你应该建立回调来获取所谓的“填充” JSON,这是很容易通过添加以下到jQuery的阿贾克斯()完成功能:
dataType: 'jsonp'
您知道,出于安全原因,浏览器不允许发出跨域请求?你正在为wmata.com或其他网站的页面工作吗? 您知道,出于安全原因,浏览器不允许发出跨域请求?你正在为wmata.com或其他网站的页面工作吗? 如果您有权访问主机,请使用CORS或JSONP。如果你不这样做,你将需要在你的服务器上设置一个页面,它会请求页面,然后将它转发给你的javascript。 – 2014-09-04 20:31:38
这可能是事实,但有可用的解决方法。 – evilunix 2014-09-04 20:33:22
没关系。这是由wmata提供的API。这意味着在默认情况下,服务器可以允许跨域请求。 – Newtt 2014-09-04 20:34:20