1.什么是jsonp?
JSONP(JSON with Padding)是的一种非正式传输协议,可用于解决主流浏览器的跨域数据访问的问题。
2.为什么使用jsonp?
因为凡是拥有"src"这个属性的标签都拥有跨域的能力,比如<script>、<img>、<iframe>。而jsonp就是利用的script标签的src属性发起请求,同时允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了。
3.例子
//在客户端发出请求
var callbackHandler = function(data){
console.log(data);
};
var url = "http://www.xiaobxia.com/user?ide=1212&callback=callbackHandler";
var script = document.createElement('script');
script.setAttribute('src', url);
document.getElementsByTagName('head')[0].appendChild(script);
//后端返回js代码,代码内容
callbackHandler({
name: 'xiaobxia'
});