原生js实现jsonp

有时候用js封装个小工具需要一些已经被封装好的函数,比如jq的jsonp

但是原生小工具如果仅仅为了这个就导入一个上百kb的jQuery不划算

然后我去网上找,一大堆废文,还是自己发一篇记录一下吧

下面是 jsonp 在 js 中的实现方法

/**
 * 模拟实现jsonp
 * @param {Object} url
 * @param {Object} callback
 */
function jsonp(url, callback) {
    var callbackName = 'jsonp_callback_' + (new Date().getTime());
    window[callbackName] = function(data) {
        delete window[callbackName];
        document.body.removeChild(script);
        callback(data);
    };

    var script = document.createElement('script');
    script.src = url + (url.indexOf('?') >= 0 ? '&' : '?') + 'callback=' + callbackName;
    document.body.appendChild(script);
}

 

posted @ 2022-07-26 11:13  散人长情  阅读(465)  评论(0编辑  收藏  举报