什么是JSONP?
先说说JSONP是怎么产生的:
jsonp函数封装,可以直接使用:
其实网上关于JSONP的讲解有很多,但却千篇一律,而且云里雾里,对于很多刚接触的人来讲理解起来有些困难,小的不才,试着用自己的方式来阐释一下这个问题,看看是否有帮助。
-
- 恰巧我们已经知道有一种叫做JSON的纯字符数据格式可以简洁的描述复杂数据,更妙的是JSON还被js原生支持,所以在客户端几乎可以随心所欲的处理这种格式的数据;
如果对于callback参数如何使用还有些模糊的话,我们后面会有具体的实例来讲解。
myJsonp = function(url,data,callback){ var fnName = 'myJsonp_' + Math.random().toString().replace('.',''); //定义一个全局回调函数 window[fnName] = callback; //初始化序列化参数 var querystring = ''; for(var attr in data){ querystring += attr + '=' + data[attr] + '&'; } //动态创建script标签 var script = document.createElement('script'); //后台接受回调函数,并调用 script.src = url + '?' + querystring + 'callback=' + fnName; //处理完毕之后,删除script标签,否则多次请求,页面会存在多个script标签 script.onload = function(){ document.body.removeChild(script); } document.body.appendChild(script); }