Jsonp原生写法

发布日期: 2020-10-10 00:00:00
点击次数: 923
大字 小字
JSONP不使用XMLHttpRequests。

使用JSONP的原因是为了克服XHR的跨域限制。

为简单起见,如果请求失败,则不包括错误处理。script.onerror如果需要,请使用。

//jsonp 封装
function jsonp(options) {
    options = options || {};
    return new Promise(function (resolve, reject) {
        var oScript = document.createElement('script');
        document.body.appendChild(oScript);
        var name = "_jsonp_" + Math.round(100000 * Math.random());
        options.url += (options.url.match(/\?/) ? '&' : '?') + "callback=" + name
        oScript.src = options.url
        window[name] = function (data) {
            resolve(data);
            document.body.removeChild(oScript);
            delete window[name];
        };
    });
}
// 调用
jsonp({
    url: jurl
}).then((res) => {
    mkWxShare(response)
});

参考来源:https://my.oschina.net/u/4409855/blog/3617092

https://www.imooc.com/wenda/detail/594959
返回顶部