springBoot的CORS支持跨域

来源:互联网 发布:网络大电影最赚钱 编辑:程序博客网 时间:2024/06/04 23:26

web开发经常会遇到跨域开发问题,解决方案有jsonp,iframe,CORS等等

  • JSONP只支持get请求,CORS支持所有的http请求类型
  • 使用CORS,开发者可以使用普通的XMLHttpRequest请求和获取数据,比起JSONP有更好的错误处理
  • JSONP主要被老的浏览器支持,它们往往不支持CORS,而绝大对数的现代浏览器都支持了CORS
  • 支持的浏览器有:Chrome3+,Firefox3.5+,Opera12+,Safari4+,IE8+

在SpringMvc中可以进行全局的配置也可以使用@CrossOrigin进行细粒度的配置

  • 全局性的配置
@Configurationpublic class CustomCorsConfiguration {    @Bean    public WebMvcConfigurer corsConfigurer() {        return new WebMvcConfigurerAdapter() {            @Override            public void addCorsMappings(CorsRegistry registry) {                // 限制了路径和域名的访问                //registry.addMapping("/api*").allowedOrigins("http://localhost:8080");            }        };    }}
  • 局部性的细粒度配置
@CrossOrigin(origins = "http://localhost:8080")    @RequestMapping(value = "/get")    public HashMap<String, Object> get(@RequestParam String name) {        HashMap<String, Object> map = new HashMap<String, Object>();        map.put("title", "hello world");        map.put("name", name);        return map;    }
原创粉丝点击