JSONP: json with padding
因为同源策略的存在,AJAX不能实现跨域获取数据,那么就有了用jsonp这种方法,来模仿实现AJAX功能。
浏览器这个客户端需要定义一个处理函数fn(),也就是回调函数。然后html中再用<script>标签的src获取数据,数据的返回值必须有后端的配合,生成一个fn("json"),也就是说返回值不再是一个json数据,而是一个可以执行的js函数,而此函数与处理函数同名,那么就自动调用了回调函数来处理json。
为了将回调函数名作为参数传递,这样避免每次和后端沟通函数名。在url中&callback=fn,后端php中$_GET["callback"]获取fn,将函数名当做变量传递。
总结下,jsonp就是获取后端输出的可执行函数(函数带json数据)