时间:2021-05-26
本文实例讲述了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程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了jsonp实现百度下拉框功能的方法。分享给大家供大家参考,具体如下:思路就是获取用户输入,然后根据用户输入调用百度的一个接口jsonp实现跨域请求
angular.js自带jsonp,实现跨域,下面来实现搜索框的下拉列表,使用百度和360分别尝试一下百度:url截取之后红色部分需替换:https://sp0
本文实例讲述了php获取百度收录、百度热词及百度快照的方法。分享给大家供大家参考。具体如下:获取百度收录:
项目实现:还原百度搜索功能;项目原理:利用json回调页面传参;什么是jsonp:就是利用标签的src地址,让目标页面回调本地页面,并且带入参数,也解决了跨域问
JavaScript初学,一点自己的理解,有不当之处请大家指正~JSONP:本地html文件要获取xxx网站(跨域)数据时使用的方法。跨域问题:外部服务器的数据