首页 > 其他分享 >161.手写一个jsonp

161.手写一个jsonp

时间:2023-07-14 23:13:57浏览次数:41  
标签:document random queryString params jsonp 手写 scriptNode 161

161. 手写一个 jsonp

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);
}

详细资料可以参考:
《原生 jsonp 具体实现》
《jsonp 的原理与实现》

标签:document,random,queryString,params,jsonp,手写,scriptNode,161
From: https://www.cnblogs.com/zhuoss/p/17555288.html

相关文章

  • C# 手写识别方案整理
    书写识别,网上的大佬们都有输出。书写识别存在的2个问题:直接拿官网的案例(将WindowsInk笔划识别为文本和形状-Windowsapps|MicrosoftLearn),会发现输出准确度不高。另外如果书写过快,词组识别也是个问题,毕竟无法准确分割字之间的笔迹。我结合之前开发经验,整理下书写识别......
  • 可以彻底告别手写正则表达式了
    这篇文章的目的是让你能得到完美的正则表达式,而且还不用自己拼。说到正则表达式,一直是令我头疼的问题,这家伙一般时候用不到,等用到的时候发现它的规则是一点儿也记不住,\d表示一个数字,\s表示包括下划线在内的任意单词字符,也就是 [A-Za-z0-9_],还有[\s\S]*可以匹配包括换行在内的任......
  • 【雕爷学编程】Arduino动手做(161)---16路PWM舵机驱动板2
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 告别手写正则表达式了
    可以彻底告别手写正则表达式了这篇文章的目的是让你能得到完美的正则表达式,而且还不用自己拼。说到正则表达式,一直是令我头疼的问题,这家伙一般时候用不到,等用到的时候发现它的规则是一点儿也记不住,\d表示一个数字,\s表示包括下划线在内的任意单词字符,也就是[A-Za-z0-9_],还有[\s......
  • AtCoder Beginner Contest 161
    AtCoderBeginnerContest161https://atcoder.jp/contests/abc161这套不算难,但是sb我还是写不出来是为什么呢F是个妙妙题C-ReplacingIntegerWA了一次所以放上来#include<bits/stdc++.h>#definelllonglongusingnamespacestd;intmain(){lla,b;c......
  • Dubbo 我手写几行代码,就把通信模式给你解释清楚!
    作者:小傅哥博客:https://bugstack.cn原文:https://bugstack.cn/md/road-map/road-map.html沉淀、分享、成长,让自己和他人都能有所收获!......
  • 永磁同步电机pmsm无感foc驱动代码,启动为高频注入,平滑切入观测器高速控制,代码全部手写
    永磁同步电机pmsm无感foc驱动代码,启动为高频注入,平滑切入观测器高速控制,代码全部手写开源,可以移植到各类mcu上。附赠高频注入仿真模型ID:69100646985514964......
  • 纯labview深度学习。 实时手写字识别。 目标分类。 包含:1.
    纯labview深度学习。实时手写字识别。目标分类。包含:1.数据集处理-labview程序2.数据集训练-labview程序3.测试主程序-labview程序。可相机,可图片。提供源码。真正实现纯labview框架下的深度学习。可同时识别多个目标。ID:118000637862783398......
  • Fontforge手写字体简明教程
    拥有自己专属的手写字体一直是DIY党的梦想,fontforge是款开源字体制作工具,虽然没有Fontcreator繁多的专业化功能,但满足字体设计的基本需求还是绰绰有余的......
  • 再见正则表达式!这次彻底告别手写!
    篇文章的目的是让你能得到完美的正则表达式,而且还不用自己拼。说到正则表达式,一直是令我头疼的问题,这家伙一般时候用不到,等用到的时候发现它的规则是一点儿也记不住,\d表示一个数字,\s表示包括下划线在内的任意单词字符,也就是 [A-Za-z0-9_],还有[\s\S]*可以匹配包括换行在内的任意......