协议、域名、端口号 有一个不一样就会发生跨域问题,跨域请求分为 简单跨域请求
和 复杂跨域请求
简单跨域请求浏览器能直接发出,但能不能跨成功要看服务端的配置
复杂跨域请求浏览器会先发送预检请求,请求方法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里面自己添加
相关文章: