Jsonp的原理,怎么去读取一个script里面的数据

首先动态添加一个script标签,script标签里的src是没有跨域限制的

在客户端脚本中注册一个回调函数,然后把回调函数的名字传递给服务器,服务端得到请求的数据后,用回调函数把输出返回的内容包起来,这样,服务器生成的json数据就能被客户端正确接受

然后以js语法的方式,生成一个function,function的名字就是传递上来的参数callback方法的名字

最后将json数据直接以入参的方式,放置到function中,这样就生成了一段js语法的文档,返回给客户端

function jsonpCallback(result) {

            alert(result.msg);

        }

其中jsonCallback是客户端注册的,获取跨域服务器上的JSON数据后,回调的函数。http://crossdomain.com/jsonServerResponse?jsonp=jsonpCallback 这个url是跨域服务器取JSON数据的接口,参数为回调函数的名字,返回的格式为: jsonpCallback({msg:'this is jsondata'}) 。如此就生成了一段js语法的文档, 传回客户端就可以调用jsonpCallBack函数了. 

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容