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 显示当前系统时间代码
Dec 28 Javascript
Js操作Select大全(取值、设置选中等等)
Oct 29 Javascript
AngularJs实现ng1.3+表单验证
Dec 10 Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
Jan 28 Javascript
Bootstrap每天必学之日期控制
Mar 07 Javascript
javascript表单正则应用
Feb 04 Javascript
js每隔两秒输出数组中的一项(实例)
May 28 Javascript
Vue-Router进阶之滚动行为详解
Sep 13 Javascript
vue异步加载高德地图的实现
Jun 19 Javascript
Nuxt.js之自动路由原理的实现方法
Nov 21 Javascript
vue实现文字加密功能
Sep 27 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
Oct 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中的Base62类(适用于数值转字符串)
2013/08/12 PHP
php将数组转换成csv格式文件输出的方法
2015/03/14 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
php变量与字符串的增删改查操作示例
2020/05/07 PHP
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
js与运算符和或运算符的妙用
2014/02/14 Javascript
轻松创建nodejs服务器(10):处理上传图片
2014/12/18 NodeJs
JS实现点击按钮后框架内载入不同网页的方法
2015/05/05 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
JavaScript中Function函数与Object对象的关系
2015/12/17 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
2016/06/13 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
jQuery实现页面下拉100像素出现悬浮窗口的方法
2016/09/05 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
JS实现按钮颜色切换效果
2020/09/05 Javascript
Vue.js进阶知识点总结
2018/04/01 Javascript
EasyUI 数据表格datagrid列自适应内容宽度的实现
2019/07/18 Javascript
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
简单解析Django框架中的表单验证
2015/07/17 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
python3的pip路径在哪
2020/06/23 Python
python 监控logcat关键字功能
2020/09/04 Python
Django自定义YamlField实现过程解析
2020/11/11 Python
名人演讲稿范文
2013/12/28 职场文书
活动策划邀请函
2014/02/06 职场文书
党员一帮一活动总结
2014/07/08 职场文书
公司周年庆典标语
2014/10/07 职场文书
租车协议书范本2014
2014/11/17 职场文书
纪检干部学习心得体会
2016/01/23 职场文书
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang