原理就是:包裹数据的js数据文件,自动执行,找到目标函数,通过传参,把数据注入进去。
当你打开本篇博文,证明你已经大体知道了Jsonp的作用了。
但如果需要我介绍一下,我也可以简单介绍:
简单说,就是解决“跨域”请求数据的作用。“跨域”,不同域名、不同ip、不同端口的数据访问,都属于跨域。js本身对跨域数据请求是不被允许的;但跨域请求js却是允许的。在这种情况下,聪明的程序员们想到了,怎样把数据冒充成js的形式,以通过安全检查。数据的承载形式有很多种,可以是xml、json等,json数据格式属于所有语言都支持的语言,因而被选中。jsonp,即json padding。
下面进入我们今天的主题:
在我们编程中,fun1()需要取得fun2()返回的数据,那么可以在fun1()中调用fun2(),取得数据(如):
聪明的程序员们,采用了另一种方式:
大家都知道,在js中,像(function(){…})(); 和 (function(){…}()); 这样的函数,具有自动执行的能力。jsonp就运用这一技术,上面的【Jsonp方式】。将fun3({"haulData":"999"});保存为js文件,将本文件引入,就能获得数据了。