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

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

程序员文章站 2022-03-18 17:59:32
...

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

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

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

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

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

这个全局配置类的话只需要放在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配置文件夹下!!!
总之连哪放哪.