原生JS跨域

来源:互联网 发布:情义知多少日本电影 编辑:程序博客网 时间:2024/06/05 02:51
<!doctype html>
<html>
<head>
<title></title>
<meta name="viewport" content="width=device-width,initial-scale=1.0">
</head>
<body>
<button id="btn">click</button>


</body>
<script type="text/javascript">
    function $(str){
        return document.getElementById(str)
    }
    function CreateScript(src) {
        var Scrip=document.createElement('script');
        Scrip.src=src;
        document.body.appendChild(Scrip);
    }
    function jsonpcallback(json) {
            console.log(json);//Object { email="中国", email2="中国222"}
    }
    $('btn').onclick=function(){
      CreateScript("http://localhost:8888/a/gct?id=001&callback=jsonpcallback")    
    }




    /*
     *兼容ie的跨域:
     */
    // function cb(r){
    //     console.info(r.data);
    // }
    // function ls(url,cb){
    //     var h = document.head||document.getElementsByTagName('head')[0]||document.documentElement,
    //     s = document.createElement('script');
    //     s.setAttribute('src',url);
    //     h.appendChild(s);
    //     document.addEventListener ? s.addEventListener('load',cb,false):
    //         s.onreadystatechange = function(r){
    //             if(this.readyState == 'loaded' || this.readyState == 'complete'){
    //                 h.removeChild(s);
    //                 cb && cb(r);
    //             }
    //         }
    // }


    // ls('http://mystock.eastmoney.com/mystock.aspx?f=gs&cb=cb&g=35540042&0.5394658758305013',cb);




    /*requirejs跨域:需要将callback的回调函数改为define,而且不需要实现*/
    // require(['http://mystock.eastmoney.com/mystock.aspx?f=gs&cb=define&g=35540042&0.5394658758305013'],function(r){
    //     console.info(r.data);
    // })


</script>
</html>
0 0