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 数组操作代码集锦
Apr 28 Javascript
25个好玩的JavaScript小游戏分享
Apr 22 Javascript
js/jquery解析json和数组格式的方法详解
Jan 09 Javascript
JavaScript异步编程Promise模式的6个特性
Apr 03 Javascript
JavaScript Split()方法
Dec 18 Javascript
Vuejs实现带样式的单文件组件新方法
May 02 Javascript
BootStrap表单控件之文本域textarea
May 23 Javascript
微信小程序 实现点击添加移除class
Jun 12 Javascript
微信小程序实现美团菜单
Jun 06 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
Mar 21 Javascript
vue中根据时间戳判断对应的时间(今天 昨天 前天)
Dec 20 Javascript
vue 查看dist文件里的结构(多种方式)
Jan 17 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/10/09 PHP
简单说说PHP优化那些事(经验分享)
2014/11/27 PHP
Yii学习总结之安装配置
2015/02/22 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
jQuery源码分析-04 选择器-Sizzle-工作原理分析
2011/11/14 Javascript
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
2015/10/26 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
2016/05/17 Javascript
基于jQuery实现选项卡效果
2017/01/04 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
Javascript中的 “&amp;” 和 “|” 详解
2017/02/02 Javascript
jQuery图片切换动画效果
2017/02/28 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
2017/06/09 jQuery
VUE实现一个分页组件的示例
2017/09/13 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
微信小程序实现的一键连接wifi功能示例
2019/04/24 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
基于Vant UI框架实现时间段选择器
2020/12/24 Javascript
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
Python的迭代器和生成器使用实例
2015/01/14 Python
Python中集合类型(set)学习小结
2015/01/28 Python
python爬虫之百度API调用方法
2017/06/11 Python
python+selenium+autoit实现文件上传功能
2017/08/23 Python
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
讲文明树新风演讲稿
2014/05/12 职场文书
主题团日活动总结
2014/06/25 职场文书
学校四风问题对照检查材料思想汇报
2014/09/26 职场文书
2014年医院工作总结
2014/11/20 职场文书
2014年车间工作总结
2014/11/21 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
python 中的jieba分词库
2021/11/23 Python