一.摘要
一般前端后端分离开发的项目经常出现该类问题,浏览器均默认开启了同源策略,它指Ajax请求所在的页面和被请求的页面在协议、域名、端口均相同才能被访问,否则就会报错。下面是其中一种解决方式;其他的方法参考:https://www.cnblogs.com/sueyyyy/p/10129575.html
二.解决方式
1. 添加配置类:
全局跨域配置,适用于接口多的场景
1 //解决跨域访问问题 2 @Configuration 3 public class CorsConfig implements WebMvcConfigurer { 4 @Bean 5 public WebMvcConfigurer corsConfigurer() 6 { 7 return new WebMvcConfigurer() { 8 @Override 9 public void addCorsMappings(CorsRegistry registry) { 10 registry.addMapping("/**"). 11 allowedOrigins("*"). //允许跨域的域名,可以用*表示允许任何域名使用 12 allowedMethods("*"). //允许任何方法(post、get等) 13 allowedHeaders("*"). //允许任何请求头 14 allowCredentials(true). //带上cookie信息 15 exposedHeaders(HttpHeaders.SET_COOKIE).maxAge(3600L); //maxAge(3600)表明在3600秒内,不需要再发送预检验请求,可以缓存该结果 16 } 17 }; 18 } 19 }
2. 添加 @CrossOrigin 注解
作用于类或者方法上,适用于接口很少的场景