jsonp跨域

2019-07-29  本文已影响0人  希染丶

在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的。但是,在页面上引入不同域上的js脚本文件却是可以的,jsonp正是利用这个特性来实现的。

// 封装一个方法
function(){
var jsonp = function(url, data, callback){
        // 1.判断url中是否带有参数
        var dataString = url.indexof('?') == -1? '?': '&';
        // 2.把参数拼接起来
        for(var key in data){
            dataString += key + '=' + data[key] + '&';
        };
        // 3.创建script标签
        var scriptEle = document.createElement('script');
        scriptEle.src = url + dataString;
        
        // 4.挂载回调函数
        window[cbFuncName] = function (data) {
            callback(data);
            // 处理完回调函数的数据之后,删除jsonp的script标签
            document.body.removeChild(scriptEle);
        }

        // 5. append到页面中
        document.body.appendChild(scriptEle);
}
}(window,document)
上一篇下一篇

猜你喜欢

热点阅读