function jsonp(url, params, callback) { // 判断是否含有参数 let queryString = url.indexOf("?") === "-1" ? "?" : "&";
// 添加参数 for (var k in params) { if (params.hasOwnProperty(k)) { queryString += k + "=" + params[k] + "&"; } }
// 处理回调函数名 let random = Math.random() .toString() .replace(".", ""), callbackName = "myJsonp" + random;
// 添加回调函数 queryString += "callback=" + callbackName;
// 构建请求 let scriptNode = document.createElement("script"); scriptNode.src = url + queryString;
window[callbackName] = function() { // 调用回调函数 callback(...arguments);
// 删除这个引入的脚本
document.getElementsByTagName("head")[0].removeChild(scriptNode);
};
// 发起请求 document.getElementsByTagName("head")[0].appendChild(scriptNode); }
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。