from origin 'http://localhost' has been blocked by CORS policy 跨域问题

前后端环境搭好之后测试了一下登录,出了这个毛病,但是上面显示的CORS

我就知道,跨域问题来了.

from origin 'http://localhost' has been blocked by CORS policy 跨域问题_第1张图片
这个CORS,是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)需要浏览器和服务器同时支持。
所有浏览器都支持该功能。
服务器的话需要单独配置使用 @CrossOrigin 或 全局配置类

这个@CrossOrigin需要配置在控制器类上

from origin 'http://localhost' has been blocked by CORS policy 跨域问题_第2张图片

这个全局配置类的话只需要放在config配置文件夹中,具体代码如下:

/**  全局跨域配置类
 */
@Configuration
public class GlobalCorsConfig {
    @Bean
    public CorsFilter corsFilter() {
        //1.添加CORS配置信息
        CorsConfiguration config = new CorsConfiguration();
        //放行哪些原始域
        config.addAllowedOrigin("*");
        //是否发送Cookie信息
        config.setAllowCredentials(true);
        //放行哪些原始域(请求方式)
        config.addAllowedMethod("OPTIONS");
        config.addAllowedMethod("HEAD");
        config.addAllowedMethod("GET");     //get
        config.addAllowedMethod("PUT");     //put
        config.addAllowedMethod("POST");    //post
        config.addAllowedMethod("DELETE");  //delete
        config.addAllowedMethod("PATCH");
        config.addAllowedHeader("*");

        //2.添加映射路径
        UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
        configSource.registerCorsConfiguration("/**", config);

        //3.返回新的CorsFilter.
        return new CorsFilter(configSource);
    }

}

配置类需要web起步依赖!!!
没有用网关的直接放在启动器类坐在项目的config配置文件夹下,
如果用的是网关!!!就请放在网关的config配置文件夹下!!!
总之连哪放哪.

你可能感兴趣的:(跨域配置,spring,异常)