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

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

  略...

  

  总结,因为要用第三方的服务器,所以既耗时又有不确定因素(比如服务器挂了),不合适用在真正项目中,自己玩玩尚可。

JSONProxy - 获取跨域json数据工具相关推荐

  1. ajax跨域获取数据后处理,简单实现ajax获取跨域数据

    本文实例为大家分享了ajax获取跨域数据的具体代码,供大家参考,具体内容如下 1.效果图 2.源码 function getData(keyword) { var url="https:// ...

  2. AJAX跨域请求数据原理与案例

    1.如何通过AJAX跨域请求数据 AJAX通过jsonp来实现跨域请求数据,通过设置dataType(jquery)为jsonp即可. 2.AJAX如何通过jsonp实现跨域(来源于其他网站资料) J ...

  3. $.ajax跨域请求数据的解决方案

    最近一直在搞公众号前台开发,遇到了ajax跨域请求的问题,像地区的省-市-县三级联动.汽车品牌-车系-车款的三级联动查询等都需要调用外部接口(其他工程项目的接口)完成.下面就分享一下个人解决跨域请求的 ...

  4. 第5章 uin-app本地主机数据跨域(Cors)数据交互实现

    开发前端App最先需要被实现的功能是:与本地主机上已经布置在IIS服务上的后端数据实现跨域(Cores)交互操作,这也是前端App作为前端工程性项目存在的根本意义和需求,因此需要首先对上一章中示例:2 ...

  5. ajax 跨域请求数据,JQuery Ajax执行跨域请求数据的解决方案

    JQuery Ajax执行跨域请求数据的解决方案 今天前端因为需要ajax调用两个不同的项目,请求域不一样,所以涉及ajax跨域的问题 ,其实很简单,具体如下 原来的ajax请求如下: $.ajax( ...

  6. 【web-攻击用户】(9.4)跨域捕获数据——通过注入HTML捕获数据、注入CSS捕获数据、JavaScript劫持

    目录 跨域捕获数据 1.1.简介: 1.2.通过注入HTML捕获数据 简介: 示例: 1.3.通过注入CSS捕获数据 简述: 1.4.JavaScript劫持 简述: 函数回调 JSON 变量分配 E ...

  7. android端获取Tomcat服务器端json数据并通过listview显示

    大体描述: 大体意思是用eclipse ee创建一个Javaweb项目,该项目能从MySQL数据库中获取user表的数据,将数据封装成json格式,将此项目发布到本地Tomcat服务器,在androi ...

  8. Firefox OS, 向jQuery中XMLHttpRequest构造函数中传参,实现跨域请求数据

    为什么80%的码农都做不了架构师?>>>    将以下代码应用于ajax方法调用之前 $.ajaxSettings.xhr = function() {try {return new ...

  9. EXCEL表格转换成json数据工具

    请先下载phpexcel插件后在使用如下代码运行 phpexcel插件下载地址:http://www.chtml.cn/topic/show/40 实例代码: <!DOCTYPE HTML PU ...

最新文章

  1. 项目经理常扮演的角色
  2. 650服务器raid配置_DELL R730服务器配置RAID及安装服务器系统
  3. 微服务~Eureka实现的服务注册与发现及服务之间的调用
  4. 【Flink】Flink Elasticsearch client is not connected to any Elasticsearch nodes
  5. bat获取命令返回值_全网都在找的redis字符串命令,总结在这了
  6. android fragment 优势,Android Fragment详解
  7. 化工计算机软件基础考试题,化工原理模拟试题(一)及答案.doc
  8. 数据包的忽略打印与脱敏打印
  9. 实验楼挑战:备份日志
  10. Java实现 LeetCode 289 生命游戏
  11. 2021年起重机司机(限桥式起重机)考试题及起重机司机(限桥式起重机)报名考试
  12. 行业寒冬,Android程序员前景一片灰暗?
  13. 基本共射放大电路的工作原理
  14. configure: error: no acceptable cc found in $PATH
  15. 数量积、向量积、混合积
  16. armv8 boot流程(二):软件如何判断当前是cold reset/warm reset/primary boot/senondary boot
  17. python 求最大内切圆和最小外接圆问题
  18. 干货 | 读懂这篇文,玩游戏还会卡顿?
  19. Linux下使用aMsn详解(转)
  20. Boost库编译指南

热门文章

  1. 获取顶级域名与一级域名的python库-tld
  2. C语言中图形方式界面怎么,「分享」C语言如何编写图形界面
  3. 谈判如何在博弈中获得更多_读后感--《谈判--如何在博弈中获得更多》
  4. 谭浩强课后题之----判断闰年
  5. python join()函数
  6. 笔记-项目采购管理-采购管理过程(具体过程)
  7. 笔记-信息系统安全管理-开放系统互连安全体系
  8. Windows服务器上Mqtt服务器EMQX的安装使用
  9. ElementUIz中el-checkbox-group多选框组的使用,怎样设置一组选项与获取所选值
  10. DevExpress的下拉框控件ComboxBoxEdit怎样绑定键值对选项