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 高效运行代码分析
Mar 18 Javascript
中国地区三级联动下拉菜单效果分析
Nov 15 Javascript
JavaScript中提前声明变量或函数例子
Nov 12 Javascript
vue中关闭eslint的方法分析
Aug 04 Javascript
vue+axios 前端实现的常用拦截的代码示例
Aug 23 Javascript
总结4个方面优化Vue项目
Feb 11 Javascript
vue表单验证你真的会了吗?vue表单验证(form)validate
Apr 07 Javascript
JS使用正则表达式提交页面验证的代码
Oct 16 Javascript
JavaScript相等运算符的九条规则示例详解
Oct 20 Javascript
vue实现路由不变的情况下,刷新页面操作示例
Feb 02 Javascript
JavaScript实现弹出窗口效果
Dec 09 Javascript
element多个表单校验的实现
May 27 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/07/08 PHP
php实现水仙花数的4个示例分享
2014/04/08 PHP
php找出指定范围内回文数且平方根也是回文数的方法
2015/03/23 PHP
dvwa+xampp搭建显示乱码的问题及解决方案
2015/08/23 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
php实现的XML操作(读取)封装类完整实例
2017/02/23 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
phpinfo的知识点总结
2019/10/10 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
JavaScript中的闭包原理分析
2010/03/08 Javascript
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
javascript将list转换成树状结构的实例
2017/09/08 Javascript
使用pm2自动化部署node项目的方法步骤
2019/01/28 Javascript
JS实现商品橱窗特效
2020/01/09 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
[01:32]TI奖金增速竟因它再创新高!DOTA2勇士令状不朽珍藏Ⅰ饰品欣赏
2018/05/18 DOTA
使用Python操作MySQL的一些基本方法
2015/08/16 Python
python处理html转义字符的方法详解
2016/07/01 Python
python3实现随机数
2018/06/25 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
Python转换时间的图文方法
2019/07/01 Python
python3.7简单的爬虫实例详解
2019/07/08 Python
Python使用Opencv实现图像特征检测与匹配的方法
2019/10/30 Python
基于Python数据分析之pandas统计分析
2020/03/03 Python
电子信息毕业生自荐信
2013/11/16 职场文书
工程采购员岗位职责
2014/03/09 职场文书
《蝙蝠和雷达》教学反思
2014/04/23 职场文书
cf战队收人口号
2014/06/21 职场文书
2015年见习期工作总结
2014/12/12 职场文书
施工员岗位职责范本
2015/04/11 职场文书
学前班教学反思
2016/02/24 职场文书
Hive日期格式转换方法总结
2022/06/25 数据库