Github:https://github.com/zhangzhixi0305/springboot-cross.git

Gitee:https://gitee.com/zhang-zhixi/springboot-cross.git

前端使用Nginx:http://localhost:8081

后端SpringBoot:http://localhost:8080

前端:

SpringBoot解决跨域的五种方式_跨域访问

后端:

第一种:全局过滤器

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;

@Configuration
public class MyCorsFilter {

    @Bean
    public CorsFilter corsFilter() {
        // 1.创建 CORS 配置对象
        CorsConfiguration config = new CorsConfiguration();
        // 支持域,格式是:域名+端口(http://localhost:8081),
        config.addAllowedOriginPattern("*");
        // 是否发送 Cookie
        config.setAllowCredentials(true);

        // 支持请求方式:POST,GET,HEAD等,*代表全部支持
        config.addAllowedMethod("POST");
        config.addAllowedMethod("GET");

        // 2.添加地址映射
        UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();
        // /** 表示当前项目的所有请求地址,都支持跨域访问。
        corsConfigurationSource.registerCorsConfiguration("/**", config);
        // 3.返回 CorsFilter 对象
        return new CorsFilter(corsConfigurationSource);
    }
}

第二种:全局MVC配置 

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MyWebMvcConfigurer implements WebMvcConfigurer {

    /**
     * 全局CORS配置
     *
     * @param registry CORS注册器
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        // 映射服务器中那些http接口进行跨域访问
        registry.addMapping("/cors/*")
                // 配置哪些来源有权限跨域
                .allowedOrigins("http://localhost:8081")
                // 配置运行跨域访问的请求方法
                .allowedMethods("GET", "POST", "DELETE", "PUT");
    }

}