协议、域名、端口号 有一个不一样就会发生跨域问题,跨域请求分为 简单跨域请求和 复杂跨域请求
简单跨域请求浏览器能直接发出,但能不能跨成功要看服务端的配置
复杂跨域请求浏览器会先发送预检请求,请求方法options,如果服务端的配置允许跨域,则浏览器发送真实的请求;如果服务端的配置不允许跨域,浏览器就报跨域错误
解决方案:
方案1:实现implements WebMvcConfigurer接口,重写addCorsMappings()方法,全局统一管理
``` @Configuration public class WebMVCConfig implements WebMvcConfigurer {
@Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**").allowedOrigins("http://localhost:8080"); }} ```
方案2:在请求接口上加@CrossOrigin注解,本质是在response里面添加响应头Access-Control-Allow-Origin:*,可以配个拦截器,在response里面自己添加
相关文章:
跨域资源共享CORS详解 - 阮一峰
Springboot解决项目中跨域问题
Java技术江湖—实现跨域的5种解决方式



