是否有任何方法可以完全从浏览器客户端访问这个JSON提要?
Is there any way to gain access to this JSON feed purely from a browser client?
我想为last.fm创建一个客户端。我的音乐"站"提要在这里,JSON格式:http://www.last.fm/player/station/user/skeftomai/mix.
然而,当我试图通过$.getJSON()
访问它时,我得到
请求的资源上没有'Access-Control-Allow-Origin'标头。因此,不允许访问源'http://my.exampledomain.com'。
所以不幸的是我们最后有一个CORS问题。调频。我想解决这个问题。以下是我尝试过的一些方法:
- 此操作失败,并返回Access-Control-Allow-Origin错误。
- 一个iframe with document。域名设置为"www.last.fm"或"last.fm"。这个错误会导致SAMEORIGIN iframe错误。
- JSONP 。不幸的是,JSONP似乎不支持这个提要。
- 一个
<script>
标签, src指向提要链接。$('#scriptTagId').html()
是空的。 - 闪光。但不幸的是,它也有同样的跨源问题。
- Java applet。太重的话,每个人可能都没有安装JVM,并且它可能会遭受相同的跨源问题。
我很确定我可以摆脱一个web代理,其中客户端利用服务器大小的代理来检索提要…但我真的非常希望这是一个纯客户端应用,没有服务器端。我想把它托管在CDN (S3 + Cloudfront)上。
有什么办法吗?
不,你所要求的是不能单独使用浏览器解决。如果第三方站点不支持CORS或JSONP,您就没有选择了,除非您控制第三方站点或可以使用您自己的服务器(或任何第三方代理,如YQL)来获取数据。
下面是YQL:
$.getJSON('https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20json%20where%20url%3D''http%3A%2F%2Fwww.last.fm%2Fplayer%2Fstation%2Fuser%2Fskeftomai%2Fmix''&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=?', function (response) {
console.log(response.query.results.json);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
相关文章:
- 无法使用javascript客户端访问远程web服务
- 仅限客户端的Dropbox访问
- Javascript 受客户端和访问控制允许源的限制
- Meteor:使用HTTP.get从客户端访问网站(CORS错误)
- 如何访问相关的客户端ID
- 授权客户端JS API调用Google'的具有现有访问令牌的gap库
- 无法访问字段'通过aspx页面上的javascript函数传递来自代码隐藏中函数调用的客户端id的s值(页面加载
- 带有本地客户端的Socket.io.原点为null且访问控制允许原点
- 在客户端访问服务器变量时获取空字符串
- 可以使用Javascript访问客户端的网络(故意)
- 如何从服务器端nodejs访问客户端javascript变量
- SharePoint - 显示模板 - 访问客户端上下文对象
- 如何在javaScript:Jquery中保存/持久化和访问客户端的数据
- WebPack:访问客户端代码中的节点环境变量
- 在ASP.NET代码后台访问客户端修改的HTML
- 如何在用HTML5编写的应用程序中访问客户端上的文件名
- 为什么Google Maps服务器需要访问客户端浏览器中添加的KML层?
- 是否有可能使用asp.net或任何客户端技术访问客户端硬盘?
- 如何访问客户端网页中的服务器端终端
- 可以访问客户端API的以服务器为中心的应用程序