码迷,mamicode.com
首页 > Web开发 > 详细

JSONP

时间:2018-09-30 14:45:59      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:call   策略   eof   attr   set   span   链接   http   返回   

JSONP主要是用来解决跨域问题,原理是动态插入script标签。ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以访问跨域的js脚本,利用这个特性,服务器不再返回JSON的脚本数据,而是返回一段调用某个函数的js代码,在src中进行调用,这样实现了跨域。JSONP的局限是:script.src 后台不配合得不到数据返回。

JSONP函数代码如下:

 1 function mycallback(data) {
 2     console.log(data);
 3 }
 4 function jsonp(url , data , callback) {
 5     if(typeof data == ‘string‘){
 6         callback = data;
 7         data = {};
 8     }
 9     var hasParams = url.indexOf(‘?‘);
10     url += (hasParams ? ‘&‘:‘?‘) + ‘callback=‘+callback;
11     var params ="";
12     for(var key in data){
13         params += ‘&‘+key+‘=‘+data[key];
14     }
15     url+=params;
16     var script = document.createElement(‘script‘);
17     script.setAttribute(‘src‘,url);
18     document.getElementsByTagName(‘body‘)[0].appendChild(script);
19 }
20 jsonp(‘http://baidu.com‘,{id:34},‘myCallback‘);

 

JSONP

标签:call   策略   eof   attr   set   span   链接   http   返回   

原文地址:https://www.cnblogs.com/daheiylx/p/9728959.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!