JSON和JSONP是什么
夏不吓已关注
2017.03.24 20:16:50字数 450阅读 1,363
JSON(JavaScript Object Notation)和JSONP(JSON with Padding)虽然表面上只有一个字母差别,实际上是两种不同的东西。JSON是一种数据交换格式,而JSONP是一种被开发人员创造出来的一种非官方的跨域数据交互协议。
JSON数据格式在前端开发这个领域用的比较多,其优点在于
基于纯文本,跨平台传递简单;
JavaScript原生支持,后台语言几乎全部支持;
轻量级数据格式,占用字符数量极少,特别适合互联网传递;
可读性较强;
容易编写和解析;
JSON实例
var person = { "Name": "Bob", "Age": 32, "Company": "IBM", "Engineer": true }
JSONP数据交互协议一般用于Ajax跨域请求。Ajax直接请求普通文件存在跨域无权限访问的问题,然而web页面上调用js文件则不受是否跨域的影响(凡是拥有src该属性的标签都有跨域的能力),于是通过web端跨域访问数据的时候,设法把数据装进js格式的文件里面。获取之后便可以在web端进一步进行处理。
为了便于客户端使用数据,逐渐形成了一种非正式传输协议,人们把它称作JSONP,该协议的一个要点就是允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了。