from origin 'http://localhost' has been blocked by CORS policy 跨域問題

前後端環境搭好之後測試了一下登錄,出了這個毛病,但是上面顯示的CORS

我就知道,跨域問題來了.

在這裏插入圖片描述
這個CORS,是一個W3C標準,全稱是"跨域資源共享"(Cross-origin resource sharing)需要瀏覽器和服務器同時支持。
所有瀏覽器都支持該功能。
服務器的話需要單獨配置使用 @CrossOrigin 或 全局配置類

這個@CrossOrigin需要配置在控制器類上

在這裏插入圖片描述

這個全局配置類的話只需要放在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配置文件夾下!!!
總之連哪放哪.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章