欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot給所有接口配置跨域的方法詳解

 更新時(shí)間:2025年09月19日 10:16:03   作者:兔子先生°  
簡(jiǎn)單而言,跨域請(qǐng)求就是當(dāng)一臺(tái)服務(wù)器資源從另一臺(tái)服務(wù)器(不同 的域名或者端口)請(qǐng)求一個(gè)資源或者接口,就會(huì)發(fā)起一個(gè)跨域 HTTP 請(qǐng)求,本文給大家介紹了SpringBoot給所有接口配置跨域的方法,需要的朋友可以參考下

跨域配置方法

在Spring Boot中,可以通過以下幾種方式為所有接口統(tǒng)一配置跨域支持:

關(guān)鍵配置說明:

  • ??allowedOriginPatterns(“*”)??
    允許所有域名訪問(生產(chǎn)環(huán)境建議替換為具體域名如 “https://yourdomain.com”)
  • allowedMethods(“*”)??
    允許所有 HTTP 方法(GET/POST/PUT/DELETE 等)
  • allowCredentials(true)??
    允許攜帶 Cookie 等憑證信息(前端需設(shè)置 withCredentials: true)
  • maxAge(3600)??
    預(yù)檢請(qǐng)求(OPTIONS)結(jié)果的緩存時(shí)間(單位:秒)

全局CORS配置

通過WebMvcConfigurer接口實(shí)現(xiàn)全局跨域配置:

@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                .allowedHeaders("*")
                .allowCredentials(false)
                .maxAge(3600);
    }
}

使用注解方式

在啟動(dòng)類上添加@CrossOrigin注解:

@SpringBootApplication
@CrossOrigin(origins = "*")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

過濾器方式

創(chuàng)建CORS過濾器實(shí)現(xiàn)全局跨域:

@Component
public class CorsFilter implements Filter {
    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 
        throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "*");
        chain.doFilter(req, res);
    }
}

配置文件方式

application.propertiesapplication.yml中配置:

# application.properties
spring.mvc.cors.allowed-origins=*
spring.mvc.cors.allowed-methods=GET,POST,PUT,DELETE

# application.yml
spring:
  mvc:
    cors:
      allowed-origins: "*"
      allowed-methods: GET,POST,PUT,DELETE

注意事項(xiàng)

  • 生產(chǎn)環(huán)境不建議使用allowedOrigins("*"),應(yīng)指定具體域名
  • 啟用allowCredentials時(shí)不能使用通配符*,必須指定具體域名
  • OPTIONS預(yù)檢請(qǐng)求的緩存時(shí)間可通過maxAge設(shè)置
  • 前端需要攜帶自定義請(qǐng)求頭時(shí),必須在allowedHeaders中明確聲明

以上就是SpringBoot給所有接口配置跨域的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot接口配置跨域的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 百度Java面試題 前200頁(yè)精選(下)

    百度Java面試題 前200頁(yè)精選(下)

    這篇文章主要為大家分享了Java面試資源下篇,百度“Java面試題”前200頁(yè)都在這里了,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • java線程間通訊的一些方法總結(jié)

    java線程間通訊的一些方法總結(jié)

    這篇文章主要介紹了java線程間通訊的一些方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • sharding-jdbc中的事務(wù)詳細(xì)解讀

    sharding-jdbc中的事務(wù)詳細(xì)解讀

    這篇文章主要介紹了sharding-jdbc中的事務(wù)詳細(xì)解讀,sharding-jdbc在分庫(kù)分表方面提供了很大的便利性,在使用DB的時(shí)候,通常都會(huì)涉及到事務(wù)這個(gè)概念,而在分庫(kù)分表的環(huán)境上再加上事務(wù),就會(huì)使事情變得復(fù)雜起來(lái),需要的朋友可以參考下
    2023-12-12
  • 如何巧用HashMap一行代碼統(tǒng)計(jì)單詞出現(xiàn)次數(shù)詳解

    如何巧用HashMap一行代碼統(tǒng)計(jì)單詞出現(xiàn)次數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于如何巧用HashMap一行代碼統(tǒng)計(jì)單詞出現(xiàn)次數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java老手該當(dāng)心的13個(gè)錯(cuò)誤

    Java老手該當(dāng)心的13個(gè)錯(cuò)誤

    這篇文章主要介紹了Java老手該當(dāng)心的13個(gè)錯(cuò)誤,需要的朋友可以參考下
    2015-04-04
  • Java進(jìn)行代碼克隆檢測(cè)的7種工具實(shí)戰(zhàn)對(duì)比

    Java進(jìn)行代碼克隆檢測(cè)的7種工具實(shí)戰(zhàn)對(duì)比

    代碼克隆不是簡(jiǎn)單地"復(fù)制粘貼",而是代碼的"基因突變",它分為4種類型,每種都讓你欲哭無(wú)淚,本文主要來(lái)講講如何使用Java進(jìn)行代碼克隆檢測(cè),大家可以根據(jù)需要進(jìn)行選擇
    2025-09-09
  • Java在制作jar包時(shí)引用第三方j(luò)ar包的方法

    Java在制作jar包時(shí)引用第三方j(luò)ar包的方法

    這篇文章主要介紹了Java在制作jar包時(shí)引用第三方j(luò)ar包的方法的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • Mybatis中<if>和<choose>的區(qū)別及“=”判斷方式

    Mybatis中<if>和<choose>的區(qū)別及“=”判斷方式

    這篇文章主要介紹了Mybatis中<if>和<choose>的區(qū)別及“=”判斷方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot的服務(wù)注冊(cè)與發(fā)現(xiàn)示例

    SpringBoot的服務(wù)注冊(cè)與發(fā)現(xiàn)示例

    本篇文章主要介紹了SpringBoot的服務(wù)注冊(cè)與發(fā)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • IDEA搭建SpringBoot離線工程的方法

    IDEA搭建SpringBoot離線工程的方法

    這篇文章主要介紹了IDEA搭建SpringBoot離線工程的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評(píng)論