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 相关文章推荐
javascript window.opener的用法分析
Apr 07 Javascript
打造基于jQuery的高性能TreeView(asp.net)
Feb 23 Javascript
JavaScript对象之间的转换 jQuery对象和原声DOM
Mar 07 Javascript
js中自定义方法实现停留几秒sleep
Jul 11 Javascript
jQuery聚合函数实例
May 21 Javascript
js如何改变文章的字体大小
Jan 08 Javascript
基于Bootstrap实现tab标签切换效果
Apr 15 Javascript
简单实现JavaScript弹幕效果
Aug 27 Javascript
快速处理vue渲染前的显示问题
Mar 05 Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
Aug 24 Javascript
创建echart多个联动的示例代码
Nov 23 Javascript
Vue表单提交点击事件只允许点击一次的实例
Oct 23 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
PHP产生随机字符串函数
2006/12/06 PHP
PHP备份/还原MySQL数据库的代码
2011/01/06 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
ThinkPHP标签制作教程
2014/07/10 PHP
php实现的支持断点续传的文件下载类
2014/09/23 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
PHP制作用户注册系统
2015/10/23 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
转一个日期输入控件,支持FF
2007/04/27 Javascript
基于jquery中children()与find()的区别介绍
2013/04/26 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
jQuery中选择器的基础使用教程
2016/05/23 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
React 父子组件通信的实现方法
2019/12/05 Javascript
vue引用外部JS的两种种方法
2020/01/28 Javascript
[01:24:16]2018DOTA2亚洲邀请赛 4.6 全明星赛
2018/04/10 DOTA
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
Python科学画图代码分享
2017/11/29 Python
Python抓取框架Scrapy爬虫入门:页面提取
2017/12/01 Python
详解python中的装饰器
2018/07/10 Python
Python中如何导入类示例详解
2019/04/17 Python
Python PyQt5模块实现窗口GUI界面代码实例
2020/05/12 Python
如何基于Python爬虫爬取美团酒店信息
2020/11/03 Python
python与idea的集成的实现
2020/11/20 Python
罗技美国官网:Logitech美国
2020/01/22 全球购物
几个人围成一圈的问题
2013/09/26 面试题
项目副经理岗位职责
2013/12/30 职场文书
小学社会实践活动总结
2014/07/03 职场文书
综合办公室岗位职责
2015/04/11 职场文书
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA