SpringBoot的Cros跨域问题经常始终不能解决跨域的原因

Posted 吃螃蟹的小孩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot的Cros跨域问题经常始终不能解决跨域的原因相关的知识,希望对你有一定的参考价值。

SpringBoot的Cros跨域问题经常始终不能解决跨域的原因

问题

在配置跨域的@Configuration的时候,发现无论是.allowedOrigns()还是.allowedOriginParrtens()都解决不了的时候请看。

问题的根本原因

SpringBoot配置的版本问题

配置方法

SpringBoot 2.2.X版本

@Configuration
public class CrosConfig extends WebMvcConfigurationSupport 

    @Override
    protected void addCorsMappings(CorsRegistry registry) 
        super.addCorsMappings(registry);
        registry.addMapping("/**")
                .allowedMethods("*")
                .allowedOrigins("*")
                .allowedHeaders("*");
    

SpringBoot 2.5.X版本

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;


import java.util.Collections;

@Configuration
public class CrosConfig 
    @Bean
    public CorsFilter corsFilter() 
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        //1,允许任何来源
        corsConfiguration.setAllowedOriginPatterns(Collections.singletonList("*"));
        //2,允许任何请求头
        corsConfiguration.addAllowedHeader(CorsConfiguration.ALL);
        //3,允许任何方法
        corsConfiguration.addAllowedMethod(CorsConfiguration.ALL);
        //4,允许凭证
        corsConfiguration.setAllowCredentials(true);

        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", corsConfiguration);
        return new CorsFilter(source);
    

以上是关于SpringBoot的Cros跨域问题经常始终不能解决跨域的原因的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot的Cros跨域问题经常始终不能解决跨域的原因

SpringBoot的Cros跨域问题经常始终不能解决跨域的原因

springboot之跨域访问cros,@CrossOrigin注解

laravel/lumen使用CROS解决跨域问题

记一次vue 使用axios跨域问题(CROS)

解决vue nodejs中cros跨域cookie和session失效的问题