由于ajax的同源策略,我们无法跨域请求数据,但是jsonp技术很好地解决了这个问题。本文利用百度搜索框接口结合jsonp技术实现获取百度关键字数据并完成百度搜索框功能:
我们可以直接在百度的搜索框上获取到它的接口,比如我们点击百度搜索文本框的时候,在chrome的network里可以看到它向一个url发起了请求,这个url也就是我们所需要的接口
去除一些我们不需要的参数,最终得到https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=&cb=jQuery110202521957712722107_1553828892769
其中wd表示我们要搜索的关键字,cb是百度规定的回调函数,我们尝试把wd赋值为汉字“中”,
然后用浏览器打开
可以看到服务器返回了一个函数的调用,jQuery110202521957712722107_1553828892769是函数名字,里面的参数是一段json数据。
基于这些,我们可以自己写一个jsonp的代码来实现这个功能
简单的样式:
1 | <style> |
关键的jsonp代码:
1 | <script> |
(完)