本节就是CORS跨域访问的解决方案。
在CORS标准之前,因为安全原因,是没有办法请求不同域名的后端API的。CORS是一种可以让你实现跨站点请求并同时阻止恶意js的请求方法。
方法上的跨域配置 @CrossOrigin
@CrossOrigin共有origins, methods, allowedHeaders, exposedHeaders, allowCredentials 和 maxAge六个参数可以设置。
@CrossOrigin
@GetMapping("/greeting")
public Greeting greeting(@RequestParam(required=false, defaultValue="World") String name) {
System.out.println("==== in greeting ====");
return new Greeting(counter.incrementAndGet(), String.format(template, name));
}
全局跨域配置
在@SpringBootApplication类启动使用全局配置
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") //全部,也可以 /api/v1/**
.allowedOrigins("*") //全部,也可以具体指定地址
.allowCredentials(true)
.allowedMethods("GET", "POST", "DELETE", "PUT") //方法
.maxAge(3600); //最大时间
}
};
}