原生JS简单封装JSONP跨域获取数据
2021-03-13 11:36
标签:接受 jsonp 链接 span 因此 erro ons error == 用原生JS封装一个简单的JSONP,主要是用来理解前端是怎么实现JSONP的。 JSONP跨域是借助 将跨域请求的链接和参数以链接的方式提交给服务器,同时在链接中附带本地接收JSONP数据函数的函数名,当服务器查找数据完毕后,调用该函数,并将数据以函数参数形式传出。 首先,使用使用JSONP跨域,不是直接返回一个数据对象,而是本地向服务器提供一个可供调用的函数fn,由服务器调用,并跨域请求的数据对象注入fn的参数。也就是说,跨域请求数据,是将本地用来接受JSONP数据对象的函数的函数名提交给服务器,由服务器来调用。 其次,因为网页中会频繁使用到JSONP,本地用来接收JSONP数据的函数将会有很多,从而导致代码冗余,占用资源。 因此,采取以下方法接收JSONP跨域请求得到的数据: 1、在封装函数Fun中随机生成一个变量名fn; 2、将fn保存为封装函数Fun的属性(即:Fun[fn]),或者window的全局属性; 3、将fn提交给服务器做为本地接收JSONP函数的函数名; 4、定义本地接收JSONP数据的匿名函数,并将匿名函数赋值给封装函数Fun的属性fn(Fun[fn] = function(data){...}); 5、将匿名函数中接收到的data传出,或在匿名函数中调用封装函数传入的回调函数(如果有的话); 6、删除Fun[fn]属性,也就是销毁接收函数。 这样,既解决本地用来接收JSONP是提供的回调函数容易重名,又在每次执行完成后销毁回调函数减少代码冗余。 原生JS简单封装JSONP跨域获取数据 标签:接受 jsonp 链接 span 因此 erro ons error == 原文地址:https://www.cnblogs.com/walker-cheng/p/12819951.html 1
文章标题:原生JS简单封装JSONP跨域获取数据
文章链接:http://soscw.com/index.php/essay/64102.html