一、同源和非同源(跨域)
Ajax:同源
JSONP:非同源(跨域),实现跨域请求最常见的方式是JSONP,其它的方法后续再做总结
区分同源和非同源:
对比当前地址和请求地址的协议、域名或IP、端口号,如果有一项不一样都是非同源
二、JSONP原理(一定要对方服务器支持)
利用script标签中没有跨域,只要给script标签中给src一个合法的地址,就可以将对应的内容请求回来
JSONP实现跨域的具体方法:
1. 首先把跨域的地址赋给script标签中的src属性
2. 把当前页面中某一个函数名当作参数值传递给需要跨域请求数据的服务器(url问号传参)
3. 服务器接收到请求后,经过特殊处理,把你传递的函数名和需要给你的数据拼接成字符串
4. 服务器将处理好的数据返回给客户端
<script charset="utf-8" text="text/javascript" src="https://dp3.qq.com/dynamic?pf=h5&sdktype=3&chid=-1&appversion=171101&get_type=sdkconfig?callback=fn"></script>
<script>
function fn(data){
//data即为请求回来的数据
console.log(data)
}
</script>
来源:CSDN
作者:qq_37200686
链接:https://blog.csdn.net/qq_37200686/article/details/104359542