开发者社区> 问答> 正文

手写一个 jsonp

手写一个 jsonp

展开
收起
请回答1024 2020-04-08 12:34:53 777 0
1 条回答
写回答
取消 提交回答
  • 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); }

    2020-04-08 12:35:01
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载