jsonp跨域获取百度联想词的方法分析


Posted in Javascript onMay 13, 2019

本文实例讲述了jsonp跨域获取百度联想词的方法。分享给大家供大家参考,具体如下:

jsonp原理:

1.Web页面上用<script> 引入 js文件时则不受是否跨域的影响 (不仅如此,我们还发现凡是拥有"src"这个属性的标签都拥有跨域的能力,比如<script>、<img>、<iframe>)

2.于是我们把数据放到服务器上,并且数据为json形式(因为js可以轻松处理json数据)

3.因为我们无法监控通过<script>的src属性是否把数据获取完成,所以我们需要做一个处理。

4.实现定义好处理跨域获取数据的函数,如 function doJson(data){}。

5.用src获取数据的时候添加一个参数cb=‘doJson' (服务端会根据参数cb的值返回对应的内容) 此内容为以cb对应的值,doJson为函数真实要传递的数据为函数的参数的一串字符如 doJson('数据')

百度联想词的实现:

用jsonp解决跨域问题。我们就跨域拿到百度的数据

<script>
  //输入框
  var oInp = document.getElementsByTagName('input')[0];
  //得到的数据存在ul的li里
  var oUl = document.getElementsByTagName('ul')[0];
  //获取输入内容,查找百度对应的src
  oInp.oninput = function () {
    var value = this.value;
    var oScript = document.createElement('script');
    oScript.src = 'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=' + value + '&cb=doJosn';
    document.body.appendChild(oScript);
  }
  //对传回的数据进行处理(回调函数)
  function doJosn(data) {
    var s = data.s;
    var str = '';
    if (s.length > 0) {
      s.forEach(function (ele, index) {
        str += '<li><a href =https://sp0.baidu.com/s?wd=' + ele + '>' + ele + '</a></li>';
      })
      oUl.innerHTML = str;
      oUl.style.display = 'block';
    } else {
      oUl.style.display = 'none';
    }
  }
</script>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
利用JS实现浏览器的title闪烁
Jul 08 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
Jun 01 Javascript
浅析JQuery中的html(),text(),val()区别
Sep 01 Javascript
Javascript判断文件是否存在(客户端/服务器端)
Sep 16 Javascript
JS实现环形进度条(从0到100%)效果
Jul 05 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
Sep 06 Javascript
基于Vue的延迟加载插件vue-view-lazy
May 21 Javascript
JavaScript设计模式之构造函数模式实例教程
Jul 02 Javascript
vue组件之间通信方式实例总结【8种方式】
Feb 22 Javascript
koa2 从入门到精通(小结)
Jul 23 Javascript
微信小程序实现签字功能
Dec 23 Javascript
webpack打包优化的几个方法总结
Feb 10 Javascript
基于Fixed定位的框选功能的实现代码
May 13 #Javascript
JQuery事件委托原理与用法实例分析
May 13 #jQuery
使用原生js编写一个简单的框选功能方法
May 13 #Javascript
Node.js实现一个HTTP服务器的方法示例
May 13 #Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
May 13 #jQuery
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
May 13 #Javascript
JavaScript封闭函数及常用内置对象示例
May 13 #Javascript
You might like
Laravel 5 学习笔记
2015/03/06 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
2017/11/07 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
PHP7修改的函数
2021/03/09 PHP
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
2016/03/02 Javascript
jquery自定义插件——window的实现【示例代码】
2016/05/06 Javascript
JavaScript:Date类型全面解析
2016/05/19 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
微信小程序 下拉菜单的实现
2017/04/06 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
详解element-ui设置下拉选择切换必填和非必填
2019/06/17 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
jquery将信息遍历到界面上实例代码
2020/01/21 jQuery
antd-日历组件,前后禁止选择,只能选中间一部分的实例
2020/10/29 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
[01:55]《走出家门看比赛》——DOTA2 2015国际邀请赛同城线下观战
2015/07/18 DOTA
python爬虫之urllib3的使用示例
2018/07/09 Python
python 实现分页显示从es中获取的数据方法
2018/12/26 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
Django 用户认证组件使用详解
2019/07/23 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
CSS3 box-shadow属性实例详解
2020/06/19 HTML / CSS
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
德国高尔夫商店:Par71.de
2020/11/29 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
办公室文员工作职责
2014/01/31 职场文书
文秘档案管理岗位职责
2014/03/06 职场文书
岗位职责说明书模板
2014/07/30 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书