背景
跨域可以在前端通过 JSONP 来解决,但是 JSONP 只可以发送 GET 请求,无法发送其他类型的请求,在 RESTful 风格的应用中,就显得非常鸡肋,因此我们推荐在后端通过 (CORS,Cross-origin resource sharing) 来解决跨域问题。这种解决方案并非 Spring Boot 特有的,在传统的 SSM 框架中,就可以通过 CORS 来解决跨域问题,只不过之前我们是在 XML 文件中配置 CORS ,现在可以通过实现WebMvcConfigurer接口然后重写addCorsMappings方法解决跨域问题。
实现方式
第一种 实现WebMVC接口,重写接口方法
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowCredentials(true)
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.maxAge(3600);
}
}第二种 注解直接配合Controller层使用
@CrossOrigin(
methods = {
RequestMethod.GET,
RequestMethod.POST,
RequestMethod.DELETE,
RequestMethod.HEAD,
RequestMethod.PUT,
RequestMethod.OPTIONS,
RequestMethod.TRACE},
allowedHeaders = {"*"},
maxAge = 50000,
origins = {"*"}
)
@RestController
public class StaffController {
//接口代码
}
京公网安备 11010502036488号