溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Spring Boot中CORS策略配置

發(fā)布時(shí)間:2024-11-15 12:48:02 來源:億速云 閱讀:78 作者:小樊 欄目:編程語言

在Spring Boot中,配置CORS(跨域資源共享)策略可以通過以下幾種方式實(shí)現(xiàn):

1. 全局CORS配置

你可以在Spring Boot應(yīng)用的主類或配置類中使用@CrossOrigin注解來配置全局CORS策略。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.CrossOrigin;

@SpringBootApplication
@CrossOrigin(origins = "http://localhost:8080", maxAge = 3600)
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

在這個(gè)例子中:

  • origins屬性指定了允許的源(域名),例如http://localhost:8080。
  • maxAge屬性指定了預(yù)檢請(qǐng)求的緩存時(shí)間(秒)。

2. 使用CORS配置類

你也可以創(chuàng)建一個(gè)專門的CORS配置類來配置CORS策略。

import org.springframework.context.annotation.Bean;
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 CorsConfig {

    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**")
                        .allowedOrigins("http://localhost:8080")
                        .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                        .allowedHeaders("*")
                        .allowCredentials(true)
                        .maxAge(3600);
            }
        };
    }
}

在這個(gè)例子中:

  • addMapping("/**")指定了所有請(qǐng)求都允許跨域。
  • allowedOrigins指定了允許的源。
  • allowedMethods指定了允許的HTTP方法。
  • allowedHeaders指定了允許的請(qǐng)求頭。
  • allowCredentials(true)表示允許發(fā)送Cookie等憑證信息。
  • maxAge指定了預(yù)檢請(qǐng)求的緩存時(shí)間。

3. 使用@CrossOrigin注解在控制器上

你也可以在具體的控制器類或方法上使用@CrossOrigin注解來配置CORS策略。

import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MyController {

    @CrossOrigin(origins = "http://localhost:8080", maxAge = 3600)
    @GetMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }
}

在這個(gè)例子中,只有/hello路徑允許跨域請(qǐng)求。

總結(jié)

以上三種方式都可以用來配置Spring Boot中的CORS策略。你可以根據(jù)具體需求選擇合適的方式來配置CORS。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI