json和jsonp
JSON是一种基于文本的数据交换方式。
JSON优点:
1、基于纯文本,跨平台传递极其简单;
2、Javascript原生支持,后台语言几乎全部支持;
3、轻量级数据格式,占用字符数量极少,特别适合互联网传递;
4、可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的;
5、容易编写和解析;
JSON思路:
1、Ajax直接请求普通文件存在跨域无权限访问的问题;
2、而Web页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有"src"这个属性的标签都拥有跨域能力,比如<script>
、<img>
、<iframe>
);
3、于是可以判断,当前阶段如果想通过纯web端(ActiveX控件、服务端代理、属于未来的HTML5之Websocket方式不算)跨域访问数据就只有一种可能,那就是在远程服务器上设法把数据装进js格式的文件里,供客户端调用和进一步处理;
4、JSON被js原生支持,在客户端几乎可以随心所欲的处理这种格式的数据;
5、解决方案即:web客户端通过与调用脚本一模一样的方式,来调用跨域服务器上动态生成的js格式文件,服务器动态生成JSON文件,目的就在于把客户端需要的数据装入进去。
6、这种获取远程数据的方式看起来非常像AJAX,其实并不一样。
7、为了便于客户端使用数据,逐渐形成了一种非正式传输协议,称作JSONP,该协议一要点就是允许用户传递一个callback参数给服务端,服务端返回数据时将这个callback参数作为函数名来包裹住JSON数据,客户端就可随意定制自己的函数来自动处理返回数据。
详细参考: 说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
简单的jsonp基本代码: TODO?