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 语法集锦 脚本之家基础推荐
Nov 15 Javascript
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
Mar 05 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
Aug 28 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
Jun 11 Javascript
javascript实现实时输出当前的时间
Apr 27 Javascript
JavaScript接口的实现三种方式(推荐)
Jun 14 Javascript
AngularJS 避繁就简的路由
Jul 01 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
Jan 23 Javascript
js 获取今天以及过去日期
Apr 11 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
Apr 20 Javascript
JS异步错误捕获的一些事小结
Apr 26 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
Aug 20 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上传图片、删除图片实现代码
2010/05/12 PHP
PHP通用检测函数集合
2011/02/08 PHP
php 判断数组是几维数组
2013/03/20 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
jQuery实现动态表单验证时文本框抖动效果完整实例
2015/08/21 Javascript
微信小程序 删除项目工程实现步骤
2016/11/10 Javascript
AngularJS中directive指令使用之事件绑定与指令交互用法示例
2016/11/22 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
Node.Js中实现端口重用原理详解
2018/05/03 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
2020/05/20 Javascript
python文件比较示例分享
2014/01/10 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
Python爬虫信息输入及页面的切换方法
2018/05/11 Python
python版本单链表实现代码
2018/09/28 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
pandas.cut具体使用总结
2019/06/24 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
在tensorflow中设置保存checkpoint的最大数量实例
2020/01/21 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
英国办公用品商店:Office Outlet
2018/04/04 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
元旦文艺汇演主持词
2014/03/26 职场文书
小学少先队活动总结
2015/05/08 职场文书
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers