手写JSONP实际上就是跨域中实现JSONP的一系列步骤的优化结合。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title></title>
</head>
<body>
<script>(function (w) {/*** jsonp的实现* @param {Object}option*/function jsonp(option) {// 0. 产生不同的函数名var callBackName = 'itLike' + Math.random().toString().substr(2) +  Math.random().toString().substr(2);// console.log(callBackName);// 1. 函数挂载在全局w[callBackName] = function (data) {option.success(data);// 删除script标签document.body.removeChild(scriptEle);};// 2. 处理url链接option.url = option.url + '?callback=' + callBackName;// 3. 创建script标签插入bodyvar scriptEle = document.createElement('script');scriptEle.src = option.url;document.body.appendChild(scriptEle);}w.jsonp = jsonp;})(window);
</script>
<script>// 调用jsonp({url: 'http://localhost:3000/',success: function (data) {console.log(data);alert('111');}});jsonp({url: 'http://localhost:3000/',success: function (data) {console.log(data);alert('222');}});jsonp({url: 'http://localhost:3000/',success: function (data) {console.log(data);alert('333');}});
</script>
</body>
</html>

JavaScript:手写JSONP相关推荐

  1. JavaScript手写(持续更新)

    类型判断 主要是利用 Object.prototype.toString.call() ,其中toString方法返回反映这个对象的字符串. 如果此方法在自定义对象中未被覆盖,toString() 返 ...

  2. 【bind()函数】JavaScript手写bind()及详解-超详细~~~

    这两天学习了手写call.apply.bind,手写bind思考了很久才实现了MDN的示例的结果,所以记录下来~ 因为是第一篇文章,所以可能存在一些错误,希望各位大佬批评指正,不吝赐教. 也欢迎不懂的 ...

  3. JavaScript - 手写实现ajax 以及 ajax封装

    1.应用场景 主要用于与后端数据交互, 请求api获取数据, 实现页面的无刷新请求数据, 保证良好的用户体验. 2.学习/操作 1. 文档阅读 TBD 2. 整理输出 2.1 实践 1). 服务端AP ...

  4. 【面试题】 「中高级前端面试」JavaScript手写代码无敌秘籍

    大厂面试题分享 面试题库 前端面试题库 (面试必备)   推荐:★★★★★ 地址:前端面试题库 1. 实现一个new操作符 new操作符做了这些事: 它创建了一个全新的对象. 它会被执行[[Proto ...

  5. javascript --- 手写Promise、快排、冒泡、单例模式+观察者模式

    手写promise 一种异步的解决方案, 参考 Promise代码基本结构 function Promise(executor){this.state = 'pending';this.value = ...

  6. ajax,training my javascript!手写AJAX,用POST方法传值

    普通的一个HTML--- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...

  7. 第四章 生命周期函数--36 结合Node手写JSONP服务器剖析JSONP原理

    转载于:https://www.cnblogs.com/songsongblue/p/10993920.html

  8. 【前端面试】同学,你会手写代码吗?

    如果您发现错误,请一定要告诉我,拯救一个辣鸡(但很帅)的少年就靠您了! CSS 部分 两栏布局 要求:垂直两栏,左边固定右边自适应. 查看代码 <!DOCTYPE html> <ht ...

  9. 一文帮你搞定90%的JS手写题

    还在害怕手写题吗,本文可以帮你扩展并巩固自己的JS基础,顺便搞定90%的手写题.在工作中还可以对常用的需求进行手写实现,比如深拷贝.防抖节流等可以直接用于往后的项目中,提高项目开发效率.不说废话了,下 ...

  10. 【面试】970- 一文帮你搞定90%的JS手写题

    还在害怕手写题吗,本文可以帮你扩展并巩固自己的JS基础,顺便搞定90%的手写题.在工作中还可以对常用的需求进行手写实现,比如深拷贝.防抖节流等可以直接用于往后的项目中,提高项目开发效率.不说废话了,下 ...

最新文章

  1. Laravel 7发行说明
  2. 爬虫基础分享Scrapy框架流程图与安装
  3. 使用srvany.exe将任何程序作为Windows服务运行
  4. mysql update中使用subquery
  5. idea打war的问题
  6. leetcode那些算法都用在了哪里
  7. JAVA - 守护线程(Daemon Thread)
  8. 用BILSTM+CRF模型进行命名实体识别
  9. 线性调频信号学习笔记
  10. web 前端面试题50道
  11. 微信卡包系列-添加微信卡券优惠券
  12. 英语考研——因果状语从句
  13. ThinkPHP3.2.3手册阅读
  14. (原创)贴片电阻封装尺寸
  15. 百度地图隐藏家和公司地点教程(2021)
  16. n96 微信 服务器繁忙,网友称塞班手机已无法登陆QQ/微信
  17. 使用 C# 将数字转换成大写人民币
  18. 威海南海新区首届“龙腾齐鲁”龙王争霸赛开赛
  19. 推荐一些景观美学的书哟~
  20. 让 AirDrop 支持有线传输,甚至让不支持 AirDrop 的 Mac 也能使用该功能 黑苹果也可以的哦

热门文章

  1. 9. explain
  2. 42.验证和授权(2)
  3. 51. Element replaceChild() 方法
  4. css3中的transform中的3d变换:translatez()与transform-origin-z()的区别
  5. 20172325 2018-2019-1 蓝墨云班课实验--哈夫曼树的编码
  6. 实验吧—Web——WP之 Forms
  7. [转]Linux统计代码行数
  8. 跨域小结(为什么form表单提交没有跨域问题,但ajax提交有跨域问题)
  9. memcached—Java操作Memcached
  10. Scrcpy - 开源免费在电脑显示手机画面并控制手机的工具 (投屏/录屏/免Root)