跨域问题及解决方案
产生原因
JavaScript的同源策略:
请求的url地址必须与浏览器上的url地址处于同域上,也就是 协议、IP、端口 相同
解决办法
利用<script>标签的src属性没有跨域限制的漏洞,网页可以得到从其它来源动态产生的JSON数据 ---- JSONP
浏览器会自动进行CORS通信,实现CORS通信的关键是后端,只要后端实现了CORS,就实现了跨域。服务器设置Access-Control-Allow-Origin就可以开启CORS。该属性表示哪些域名可以访问资源,如果设置通配符则表示所有网站都可以访问资源 ---- CORS
使用nginx反向代理实现跨域,是最简单的跨域方式。只需要修改nginx的配置即可解决跨域问题,支持所有浏览器,支持session,不需要修改任何代码,并且不会影响服务器性能 ---- nginx反向代理
Spring:
@CrossOrigin注解
controller方法的CORS配置,可以向@RequesrMapping注解处理程序方法添加一个@CrossOrigin注解,以便启用CORS(默认情况下,@CrossORigin允许在@RequestMapping注解中指定的所有源和HTTP方法)