jsonp原生js跨域拿新浪数据插件封装【可扩展】
//修改了一个bug,增加了手动释放垃圾
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>jsonp跨域源码插件封装</title>
</head><body><input type="text" id="code"><input type="button" value="查询" id="serch"><script>; (function (win) {const jsonp = function (dataPack) {const callback = dataPack.callBack || '';const code = dataPack.code || 'sh000001';const getUrl = 'http://hq.sinajs.cn/list=' + code;let scriPt = document.createElement('script');scriPt.src = getUrl;scriPt.id = 'xl';const oldScript = document.getElementById('xl');const success = function () {const val = eval('hq_str_' + code);//手动垃圾回收for (let i in window) {if (/^hq_str_/.test(i)) {window[i] = null;}}callback && callback(val);}const error = function () {callback && callback('跨域发生了错误!');}if (oldScript) {document.body.removeChild(oldScript);document.body.appendChild(scriPt);} else {document.body.appendChild(scriPt);}scriPt.onload = success;scriPt.onerror = error;}win.jsonp = jsonp;})(window);document.querySelector('#serch').addEventListener('click', function () {jsonp({code: document.querySelector('#code').value,callBack: function (data) {console.log(data);}});})</script>
</body></html>
转载于:https://www.cnblogs.com/webSong/p/9418828.html
jsonp原生js跨域拿新浪数据插件封装【可扩展】相关推荐
- Asp.net WebApi跨域_se7en3_新浪博客
WebApi需要跨域访问,但又不想用jsonp 1.在 Nuget里 联机搜索安装 Microsoft.AspNet.WebApi.Cors 2.App_Start/WebApiConfig里加入 R ...
- js跨域请求方式 ---- JSONP原理解析
这篇文章主要介绍了js跨域请求的5中解决方式的相关资料,需要的朋友可以参考下 跨域请求数据解决方案主要有如下解决方法: 1 2 3 4 5 JSONP方式 表单POST方式 服务器代理 Html5的X ...
- 【转】JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...
- JS跨域(ajax跨域、iframe跨域)解决方法及原理详解(jsonp)
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...
- js跨域交互(jQuery+php)之jsonp使用心得
jsonp是什么? 说到jsonp,你可能最先想到JSON:它还真和JSON有关系: JSONP(JSON with Padding)是JSON的一种"使用模式",可用于解决主流浏 ...
- window.opener方法的使用 js跨域
2019独角兽企业重金招聘Python工程师标准>>> 最近公司网站登陆加入了第三方登陆.可以用QQ直接登陆到我们网站,在login页面A中点QQ登陆时,调用了一个window.op ...
- JSONP实现Ajax跨域请求
前言 由于浏览器存在同源策略的机制,所谓同源策略就是阻止从一个源(域名,包括同一个根域名下的不同二级域名)加载的文档或者脚本获取/或者设置另一个源加载的文档属性. 但比较特别的是:由于同源策略是浏览器 ...
- firefox如何载入json文件_如何去解决JS跨域问题 怎么能学好Web前端开发
如何去解决JS跨域问题?怎么能学好Web前端开发?JavaScript跨域是指通过JS在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过JS获取页面中不同域的框架中(if ...
- iframe跨域调用js_郑州Web前端基础学习之JS跨域知识梳理
JS是Web前端开发三要素之一,是郑州Web前端基础学习中非常重要的知识点.JS涉及的知识点多且杂,很多同学反映不知如何下手,事实上,只要你认真记.多练习,就可以慢慢掌握它.今天千锋郑州Web前端培训 ...
最新文章
- 编码问题(BOM头简单了解)
- PyCharm编辑器关于环境的配置
- 使用gparted-LiveCD对centos分区调整---virtualbox磁盘调整序2
- mvc 扫描二维码跳转内部指定页面_开源神器:一个二维码,让文件传输不设限!...
- C++ opengl 点光源
- Centos7 ubuntu 安装Telnet服务
- 构建高性能ASP.NET站点
- matlab 解相位_光测力学栅线投影技术-相位求解方法
- SQL:postgresql中使用limit ... offset ... 实现分页查询
- 麦咖啡McAfee 8.8企业版规则设置(高级篇)
- vue3 three ts 全景图
- 企业微信的一周小结是怎么统计的?
- LZJ流体质量计算机价格,LZJ-ⅢC型流体质量计算机
- windows pagefile.sys配置调整
- VCRedist.exe静默安装方法(转)
- 忽尔今夏,SpringSide 3.0
- 为什么设计稿是750px
- linux中解压rar文件
- 针对刀具磨损的日志读取的曲线分析(一维高斯滤波及波形拟合)
- oracle rac补丁安装详细步骤,RAC打补丁的步骤
热门文章
- python2中可以使用print()函数吗_在Python2.x中使用print()(函数版本)
- mysql将查到的数据删除_MySQL数据库的基本操作——增、删、改、查
- aix oracle监听配置_LINUX系统下Oracle修改默认监听端口号操作
- 深度学习(3)手写数字识别问题
- mysql inner join where_mysql中,inner join和where的结合问题
- 『ACM--算法--KMP』信息竞赛进阶指南--KMP算法(模板)
- HTML--HTML入门篇(我想10分钟入门HTML,可以,交给我吧)
- linux-shell命令之cp(copy)【拷贝复制】
- [机器学习]回归--(Simple LR and Multiple LR)
- [转]订制CentOS自安装光盘