欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringBoot跨域问题

程序员文章站 2022-04-08 16:50:11
1.先来说说跨域原理: 跨域原理简单来说就是发起跨域请求的时候,浏览器会对请求域返回的响应信息检查HTTP头,如果Access-Control-Allow-Origin包含了自身域,则允许访问,否则报错. 2.如何解决跨域问题 2.1 使用@CrossOrigin注解 ①该注解可以使用在方法和类上, ......

 1.先来说说跨域原理:

跨域原理简单来说就是发起跨域请求的时候,浏览器会对请求域返回的响应信息检查http头,如果access-control-allow-origin包含了自身域,则允许访问,否则报错.

   2.如何解决跨域问题

    2.1  使用@crossorigin注解

    ①该注解可以使用在方法和类上,使用在方法上表示只对该方法生效.

    @crossorigin(origins = {"http://localhost:8080", "null"})

    @getmapping("/hello")

    public string say(){

      return "hello springboot";

    }

    ②该注解使用在类上是,表示对该类声明所有接口都有效.

    ③如果需要添加全局配置,可以写一个配置类,继承webmvcconfigureradapter类(不推荐,在springboot2.0和spring5.0以后,webmvcconfigureradapter已被废弃);

    ④.可以继承 webmvcconfigurationsupport ,重写 addcorsmappings 方法.  

    @configuration
    public class corsconfigration extends webmvcconfigurationsupport {
     @override
    protected void addcorsmappings(corsregistry registry) {
     registry.addmapping("/hello/**")//限定访问路径为/hello
     .allowedorigins("http://www.baidu.com")//允许来自www.baidu.com的跨域访问
     .allowedmethods("post","get");//限定访问方法是post或者get
     }
    }

    ⑤.可以实现 webmvcconfigurer 接口实现 addcorsmappings 方法.同上

附上idea重写快捷键ctrl+o.