1.什么是跨域?
浏览器从一个域名的网页去请求另外一个域名的资源时,域名、端口或者协议不同都是跨域
2.跨域的解决方案
- 设置CORS响应头∶后端可以在HTTP响应头中添加相关的CORS标头,允许特定的源(域名、协议、端口)访问资源。Spring Boot项目中,可以通过配置CorsFilter Bean或者Web拦截器(实现WebMvcConfigurer接口)实现,不依赖第三方服务
- 使用代理服务器:可以使用Nginx反向代理,通过add_header给后端响应添加Access-Control-Allow-Origin头,不改代码实现跨域。
- @CrossOrigin注解 :Spring Boot项目可以直接在对应的Controller或接口方法上添加@CrossOrigin注解实现跨域,但这种方式对代码的侵入性较大。
一般我会选用第二种方式,不需要考虑特定的后端接口实现代码,是一种更通用的解决跨域的方法。