JSON

JSONProxy - 获取跨域json数据

字号+ 作者:H5之家 来源:H5之家 2017-10-01 09:06 我要评论( )

JSONProxy - 获取跨域json数据

JSONProxy 是一款很好的获取 json 数据的代理网站,“Enables cross-domain requests to  any JSON API”。当你苦于无法跨域获取json数据时,不妨一试,说不定能事半功倍。

比如这位朋友,想通过ajax获取必应的每日一图的url( 是否可以通过ajax获取“Bing每日一图”? )很显然,这个ajax是跨域的,直接获取会因为跨域报错;服务端也肯定不会有对你本地localhost的“Access-Control-Allow-Origin”的设置,所以CORS策略也是不行的;因为是个json数据,没有方法名包裹,所以jsonp也是不行。楼主暂时还没接触过其他的跨域方法,如果要我去获取url,只能通过服务端的代码,服务端去获取json数据,然后index页面去ajax请求服务端获取的json数据(此时index页面和服务端同源),代码量增加,而要做的仅仅只是获取一个json数据啊!这时 JSONProxy 就帮你做好了服务端的工作,是不是很爽!

Easy: JSONP

原生的JavaScript:

<script> function myCallback(data){ console.log(data); } </script> <script src="https://jsonp.afeld.me/?callback=myCallback&url=http://jsonview.com/example.json"></script>

myCallback函数里的data就是返回的json数据了。很显然,服务器会帮你去请求你需要的json数据,然后包裹在你设置的回调函数名中,这时要注意的代码中的红色两处要保持一致,url后跟的就是需要的json数据地址。

当然JQuery封装好的方法更加简单:

<script> $.getJSON('https://jsonp.afeld.me/?callback=?&url=http://jsonview.com/example.json', function(data){ console.log(data); }); </script> Easier: Cross-domain AJAX (CORS)

比jsonp更简单的方法是CORS(好吧,也没简单到哪去啊...)

<script> $.get('https://jsonp.afeld.me/?url=http://jsonview.com/example.json', function(data){ console.log(data); }); </script>

这回是真正地发送了ajax请求了,为什么跨域了还能请求?因为服务端设置好了。

而请求的json数据也是服务端帮你获取的。也就是说,客户端发送请求,服务端解析请求的url,然后服务器作为代理发送http请求去请求json数据(这时不存在客户端跨域),再返回给客户端作为回调的参数。

Easiest: jQuery Plugin

最简单的,我怎么感觉越来越复杂了...

略...

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • netcore NetCore获取Json和Xml格式的配置信息

    netcore NetCore获取Json和Xml格式的配置信息

    2017-09-20 10:03

  • IE7下 JSON.stringify() 的问题

    IE7下 JSON.stringify() 的问题

    2017-09-19 14:30

  • jquery的ajax和getJson跨域获取json数据的实现方法

    jquery的ajax和getJson跨域获取json数据的实现方法

    2017-09-14 18:07

  • php怎么获取数据库转换成json数据乱码

    php怎么获取数据库转换成json数据乱码

    2017-08-28 09:00

网友点评
a