jsonp跨域的实现
jsonp跨域原理
1.利用script
标签的src
属性来跨域
2.用script
标签加载资源没有跨域问题
一个跨域的例子
百度的搜索关键字就是通过jsonp
跨域获取的
通过请求可以确定百度获取关键字的接口类似于下面这样:https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=6&json=1&p=3&sid=&req=2&bs=b&csor=1&cb=jQuery110207041980424810492_1512634067560&_=1512634067572
通过精简可以得到:https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=6&json=1&cb=callback
其中 wd
后面跟的是搜索的关键字, callback
就是回调函数,所有请求回来的数据都要通过callback
才能使用
完整代码
果然在jsfiddle下面跑不起来,复制到本地就可以了
缺点
1.只能使用get
方法获取数据
2.需要定义全部函数
其他跨域方法
1.代理:利用服务端向另一个域名下的接口发起请求并拿到返回值,后端中转,绕过浏览器端的跨域限制
2.Access-Control-Allow-Origin
设置白名单