luck 2011-03-22
jsonp 全名是 "json with padding",主要是为了避开“同源策略”而跨站传输数据。
其实就是一种js和dom的使用模式:
比如说要根据一些数据想页面显示内容,但是内容是从其它domain取出来的,所以使用ajax
不能取(sameoriginpolicy),所以就采取这种方式。
同源策略基于这样一个事实:站点之间的dom互操作是受很大限制的,但是js可以。
因此就是通过动态的向dom中插入段js代码,然后执行它。这段脚本是怎么产生的?这是有你要访问的域决定的。通常采取这样一种方式:
先写好一个函数,然后告诉其它的域什么条件下执行这个函数。
functionshowMap(data){
}
otherDomain.jsp?callback=showMap
otherDomain.jsp:
获取并组织数据,
atend:
showMap({data1:111,data2:222});
返回上面这句js,