jsonp跨域获取百度联想词的方法分析

 更新时间:2019年05月13日 10:02:16   作者:很小白的小白  
这篇文章主要介绍了jsonp跨域获取百度联想词的方法,结合实例形式分析了jsonp的原理及跨域获取百度联想词的相关操作技巧,需要的朋友可以参考下

本文实例讲述了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中ajax操作技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

相关文章

  • JS实现随页面滚动显示/隐藏窗口固定位置元素

    JS实现随页面滚动显示/隐藏窗口固定位置元素

    窗口固定位置显示元素,当页面高度大于某高度,并且页面向下滚动时,显示该元素;当页面位置小于某高度,或者页面向上滚动时,隐藏该元素,下面通过本文给大家介绍JS实现随页面滚动显示/隐藏窗口固定位置元素,需要的朋友参考下吧
    2016-02-02
  • 完美实现js选项卡切换效果(二)

    完美实现js选项卡切换效果(二)

    这篇文章主要为大家详细介绍如何完美实现js选项卡切换效果,通过设置定时器实现延时0.5s切换选项卡,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 轻松掌握JavaScript策略模式

    轻松掌握JavaScript策略模式

    这篇文章主要帮助大家轻松掌握JavaScript策略模式,什么是js策略模式,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • Bootstrap每天必学之模态框(Modal)插件

    Bootstrap每天必学之模态框(Modal)插件

    Bootstrap每天必学之模态框(Modal)插件,模态框(Modal)是覆盖在父窗体上的子窗体。通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动。子窗体可提供信息、交互等,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • JavaScript数组问题解决的多种方法

    JavaScript数组问题解决的多种方法

    JavaScript数组问题多种方法小结,众多blueidea高手联袂打造
    2008-07-07
  • js实现图片点击左右轮播

    js实现图片点击左右轮播

    本文给大家分享的是使用javascript实现的图片左右轮播的代码,已经封装完毕,使用方法非常简单,参考示例,有需要的小伙伴可以参考下。
    2015-07-07
  • Javascript中判断一个值是否为undefined的方法详解

    Javascript中判断一个值是否为undefined的方法详解

    这篇文章给大家详细介绍了在Javascript中如何判断一个值是否为undefined,对大家的日常工作和学习很有帮助,下面来一起看看吧。
    2016-09-09
  • ES6 更易于继承的类语法的使用

    ES6 更易于继承的类语法的使用

    这篇文章主要介绍了ES6 更易于继承的类语法的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • 如何理解JS函数防抖和函数节流

    如何理解JS函数防抖和函数节流

    函数防抖和函数节流都是对函数进行特殊的设置,减少该函数在某一时间段内频繁触发带来的副作用。二者只是采用的设置方式和原理不一样,其最终的目的是一样的。
    2021-05-05
  • js左右弹性滚动对联广告代码分享

    js左右弹性滚动对联广告代码分享

    这个对联广告与其它的有所区别,这个是页面加载时先没看到广告,然后从左边快速飞进来的两个对联广告哦,下面我们一起来看看对联广告效果代码
    2014-02-02

最新评论