7.CORS支持
一、Web 开发经常会遇到跨域问题,解决方案有:jsonp,iframe,CORS 等等 CORS 与 JSONP 相比
1、JSONP 只能实现 GET 请求,而 CORS 支持所有类型的 HTTP 请求。
2、使用 CORS,开发者可以使用普通的 XMLHttpRequest 发起请求和获得数据,比起 JSONP 有更好的错误处理。
3、JSONP 主要被老的浏览器支持,它们往往不支持 CORS,而绝大多数现代浏览器都已经支持了 CORS
浏览器支持情况
Chrome 3+
Firefox 3.5+
Opera 12+
Safari 4+
Internet Explorer 8+
二、在 spring MVC 中可以配置全局的规则,也可以使用@CrossOrigin 注解进行细粒度的配置。
全局配置:
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**").allowedOrigins("http://localhost:8080");
}
};
}或者使用下面的方式
具体实现:

CustomCorsConfiguration.java
ApiController.java
启动测试:
可以通过其他程序进行ajax请求测试
也可以使用postmans发送post测试
细粒度配置:
@CrossOrigin 注释
直接加在controller
资料
Last updated
Was this helpful?