什么是跨域?
ANSWER:浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域!
解决方案
方案一:
- 在Controller上使用@CrossOrigin注解,如下所示
@RequestMapping("/user")
@RestController
//@CrossOrigin //所有域名均可访问该类下所有接口
@CrossOrigin("https//localhost:8080") // 只有指定域名可以访问该类下所有接口
public class CorsTestController {
@GetMapping("/test")
public String test() {
return "test";
}
}
方案二:
- 全局配置跨域(写个配置类重写addCorsMappings方法即可)
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry
.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
.maxAge(3600)
.allowedHeaders("*");
}
}