使用Spring Boot實現跨域資源共享(CORS)設置

在Web開發中,跨域資源共享是一種重要的技術,它可以讓瀏覽器跨越不同的域名、協議、埠進行資源的訪問和交互。本文將從以下幾個方面對使用Spring Boot實現跨域資源共享(CORS)設置進行詳細的闡述。

一、Spring Boot中的CORS設置

Spring Boot提供了一種簡單的方式來配置CORS。我們可以使用org.springframework.web.filter.CorsFilter類來實現對跨域資源的共享。以下的代碼示例展示了如何使用CorsFilter:

    \@Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowCredentials(true);
        config.addAllowedOrigin("*");
        config.addAllowedHeader("*");
        config.addAllowedMethod("*");
        source.registerCorsConfiguration("/**", config);
        return new CorsFilter(source);
    }

上面的代碼創建了一個CorsFilter bean,並且通過config對象對CORS進行了配置。setAllowCredentials(true)允許cookies被發送到伺服器。addAllowedOrigin(“*”)允許來自所有域的請求,addAllowedHeader(“*”)允許請求中的所有頭信息,addAllowedMethod(“*”)允許使用所有的HTTP方法(GET、POST等)。最後,將上述所有的配置應用到所有的URL上。UrlBasedCorsConfigurationSource類將CorsConfiguration實例應用到所匹配的URL上,並且返回具有所有適當CORS設置的CorsFilter實例。

二、使用配置類設置CORS

除了上述代碼將CORS設置應用於所有URL之外,我們還可以使用Java配置類來實現CORS設置。以下的代碼示例展示了如何使用Java配置類實現CORS設置:

    \@Configuration
    public class CorsConfig {
        
        private CorsConfiguration buildConfig() {
            CorsConfiguration config = new CorsConfiguration();
            config.setAllowCredentials(true);
            config.addAllowedOrigin("*");
            config.addAllowedHeader("*");
            config.addAllowedMethod("*");
            return config;
        }

        \@Bean
        public CorsFilter corsFilter() {
            UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
            source.registerCorsConfiguration("/**", buildConfig());
            return new CorsFilter(source);
        }
    }

上述代碼將CORS設置應用於所有域,並且允許所有的HTTP方法。

三、在Controller中設置CORS

除了使用CorsFilter和Java配置類來設置CORS之外,我們還可以在Controller中設置CORS。以下的代碼示例展示了如何在Controller中設置CORS:

    \@RestController
    \@CrossOrigin(origins = "*", maxAge = 3600)
    public class TestController {
        // Controller代碼
    }

使用@CrossOrigin注釋來啟用CORS,並且將允許的域設置為”*”。此外,將maxAge設置為3600 seconds,表示預檢請求有效期。

四、總結

通過以上的介紹,我們了解了在Spring Boot中如何實現CORS設置,包括通過CorsFilter和Java配置類來實現CORS設置,並且我們還可以在Controller中設置CORS。通過學習CORS設置,我們可以更好地進行Web開發,使得瀏覽器可以更加靈活地與不同域的資源進行交互。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/270787.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-16 13:38
下一篇 2024-12-16 13:38

相關推薦

發表回復

登錄後才能評論