什么是跨域? 什么时候会出现跨域问题? 跨域的三种解决方案
-
什么是跨域
跨域概念上来说就是浏览器遵守了非同源禁止协议.通俗的讲就是浏览器会阻止你请求非同一个域返回结果,目的是防止跨站攻击,但是需要注意的是,非同源协议是针对非同源的请求的,而不是针对浏览器的,浏览器本身是可以去访问和返回结果的.
- 跨域出现的条件
- 域名不同(可能跨域)
之所以说可能跨域只有域名是二级或这二级以上域名不同,才跨域
二级域名解释:
.com顶级域名
baidu.com一级域名
www.baidu.com
二级域名
bbs.baidu.com二级域名
tieba.baidu.com二级域名
端口号不同
在端口不相同的情况下绝对跨域协议不同
协议也是绝对跨域,http和https属于跨域,请求方式get,post等等
- 解决跨域的三种办法
使用nginx,通过nginx的反向代理,所有请求全部访问一个端口像80端口然后在分发下去其他服务器.
在controller的具体controller上加上@CrossOrigin注解,这样做的原理是将浏览器的http请求体内加上了一个跨域协议,允许了非同源的访问
js的一个组件叫做jsonp,通过一个漏洞,能够让某些请求允许跨域访问