加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

jsonp实现跨域

发布时间:2020-12-16 19:34:56 所属栏目:百科 来源:网络整理
导读:- 1、jsonp跨域原理 jsonp利用带有src属性的标签可以引用外部资源,通过但会类似于fn([{},{}])的json数据实现跨域 - 2、josnp跨域形式 script type = "text/javascript" src= "http://a.test.com?callback=jsonp" / 服务器端通过http://a.test.com?callback=

-1、jsonp跨域原理
jsonp利用带有src属性的标签可以引用外部资源,通过但会类似于fn([{},{}])的json数据实现跨域

-2、josnp跨域形式

<script type="text/javascript" src="http://a.test.com?callback=jsonp" />

服务器端通过http://a.test.com?callback=jsonp返回数据
jsonp([{name:’1’,age:18},{name:’2’,age:19},{name:’3’,age:20},{name:’4’,age:23}])

客户端定义函数:

window.jsonp=function(){

};

封装的getJsonp
http://www.jianshu.com/p/3bb03ba1d76c?utm_source=tuicool&utm_medium=referral

var getJsonp = function(url,success){
    //声明window下的jsonp函数
    window.jsonp = function(data){
        //jsonp函数被执行将data转发到success函数
        success(data);
    }
    var src = '';
    //判断地址是否带其它参数决定callback怎么拼接
    if(url.IndexOf('?') != -1){
        src = url + '&callback=jsonp';
    }else{
        src = url + '?callback=jsonp';
    }
    //动态创建script标签
    var script = document.createElement('script');
    script.type = "text/javascript";
    script.src = src;
    document.head.appendChild(script);
}

//用法
getJsonp('http://test.com/users',function(data){
    console.log('得到jsonp数据:',JSON.stringify(data));
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读