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 相关文章推荐
slice函数的用法 之不错的应用
Dec 29 Javascript
获取当前网页document.url location.href区别总结
May 10 Javascript
javascript实现的网页局布刷新效果
Dec 01 Javascript
jQuery 对象中的类数组操作
Apr 27 Javascript
仅用[]()+!等符号就足以实现几乎任意Javascript代码
Mar 01 Javascript
javascript检查浏览器是否支持flash的实现代码
Aug 14 Javascript
jQuery实现给页面换肤的方法
May 30 Javascript
seajs学习教程之基础篇
Oct 20 Javascript
深入理解vue.js双向绑定的实现原理
Dec 05 Javascript
深入理解vue-loader如何使用
Jun 06 Javascript
简单谈谈js的数据类型
Sep 25 Javascript
JavaScript事件委托原理与用法实例分析
Jun 07 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环境――Appserv
2006/12/13 PHP
php中设置index.php文件为只读的方法
2013/02/06 PHP
学习php过程中的一些注意点的总结
2013/10/25 PHP
php分页函数示例代码分享
2014/02/24 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
PHP编程中的__clone()方法使用详解
2015/11/27 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
2017/04/14 Javascript
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
AjaxFileUpload.js实现异步上传文件功能
2019/04/19 Javascript
Python中MySQLdb和torndb模块对MySQL的断连问题处理
2015/11/09 Python
Python的Django应用程序解决AJAX跨域访问问题的方法
2016/05/31 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
python linecache 处理固定格式文本数据的方法
2019/01/08 Python
基于wxPython的GUI实现输入对话框(1)
2019/02/27 Python
Python中的四种交换数值的方法解析
2019/11/18 Python
基于python生成英文版词云图代码实例
2020/05/16 Python
通过自学python能找到工作吗
2020/06/21 Python
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
助人为乐表扬信范文
2014/01/14 职场文书
中国文明网签名寄语
2014/01/18 职场文书
职称评定自我鉴定
2014/03/18 职场文书
《金色的脚印》教后反思
2014/04/23 职场文书
村级环境卫生整治方案
2014/05/04 职场文书
营运督导岗位职责
2015/04/10 职场文书
演讲比赛主持词
2015/06/29 职场文书
如何写好活动总结
2019/06/21 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang
DIY胆机必读:各国电子管评价
2022/04/06 无线电