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设置白名单

标签: 跨域, ajax

添加新评论