c语言编程笔录

首页 >   > 笔记大全

笔记大全

Springboot怎么通过配置WebMvcConfig处理Cors非同源访问跨域问题

更新时间:2023-08-03

前言:

跨域是指在浏览器中,发送的请求存在不同的域名、端口或协议,这时就会触发浏览器的同源策略安全机制。跨域请求将会被浏览器拦截,不允许接收响应结果。为了解决这个问题,我们可以通过配置WebMvcConfig来处理跨域问题,允许非同源访问。

处理跨域问题的步骤:

第一步,创建一个配置类WebMvcConfig,并继承WebMvcConfigurerAdapter。这个类主要用于配置拦截器、格式转换、跨域请求等。

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {

}

第二步,在配置类中重写addCorsMappings方法,用于添加跨域映射。在该方法中,我们可以通过CorsRegistry对象添加允许跨域访问的规则。

@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/api/**")
                .allowedOrigins("http://localhost:8080")
                .allowedMethods("GET", "POST", "PUT", "DELETE")
                .allowedHeaders("Content-Type")
                .allowCredentials(true)
                .maxAge(3600);
    }
}

在上述代码中,我们添加了一个跨域映射,表示针对"/api/**"路径的请求,允许来自"http://localhost:8080"的跨域访问。其中allowedOrigins方法用于指定允许跨域请求的源地址,allowedMethods方法用于指定允许的请求方法,allowedHeaders方法用于指定允许的请求头,allowCredentials方法用于指定是否允许发送Cookie,maxAge方法用于指定跨域访问的最大时间。

第三步,在Spring Boot的启动类中,使用@EnableWebMvc注解,以启用Spring MVC的自动配置。这样,Spring Boot会自动加载WebMvcConfig配置类,从而实现跨域访问的配置。

@SpringBootApplication
@EnableWebMvc
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

总结:

通过配置WebMvcConfig处理Cors非同源访问跨域问题的步骤包括创建配置类、重写addCorsMappings方法、使用@EnableWebMvc注解。通过这些步骤,我们可以配置允许哪些跨域请求访问,以及允许的请求方法、请求头、是否允许发送Cookie等。配置完毕后,我们的Spring Boot应用就可以处理跨域请求,解决非同源访问的跨域问题。