SpringBoot給所有接口配置跨域的方法詳解
更新時間:2025年09月19日 10:16:03 作者:兔子先生°
簡單而言,跨域請求就是當一臺服務器資源從另一臺服務器(不同 的域名或者端口)請求一個資源或者接口,就會發(fā)起一個跨域 HTTP 請求,本文給大家介紹了SpringBoot給所有接口配置跨域的方法,需要的朋友可以參考下
跨域配置方法
在Spring Boot中,可以通過以下幾種方式為所有接口統(tǒng)一配置跨域支持:
關鍵配置說明:
- ??allowedOriginPatterns(“*”)??
允許所有域名訪問(生產(chǎn)環(huán)境建議替換為具體域名如 “https://yourdomain.com”) - allowedMethods(“*”)??
允許所有 HTTP 方法(GET/POST/PUT/DELETE 等) - allowCredentials(true)??
允許攜帶 Cookie 等憑證信息(前端需設置 withCredentials: true) - maxAge(3600)??
預檢請求(OPTIONS)結果的緩存時間(單位:秒)
全局CORS配置
通過WebMvcConfigurer接口實現(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);
}
}
使用注解方式
在啟動類上添加@CrossOrigin注解:
@SpringBootApplication
@CrossOrigin(origins = "*")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
過濾器方式
創(chuàng)建CORS過濾器實現(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.properties或application.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
注意事項
- 生產(chǎn)環(huán)境不建議使用
allowedOrigins("*"),應指定具體域名 - 啟用
allowCredentials時不能使用通配符*,必須指定具體域名 - OPTIONS預檢請求的緩存時間可通過
maxAge設置 - 前端需要攜帶自定義請求頭時,必須在
allowedHeaders中明確聲明
以上就是SpringBoot給所有接口配置跨域的方法詳解的詳細內容,更多關于SpringBoot接口配置跨域的資料請關注腳本之家其它相關文章!
相關文章
詳解Spring Boot下使用logback 記錄多個文件日志
這篇文章主要介紹了詳解Spring Boot下使用logback 記錄多個文件日志,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08
Java實現(xiàn)Redisson分布式鎖的10大陷阱與避坑指南
本文介紹了Redisson分布式鎖的基礎用法與高級特性,包括基本鎖操作、公平鎖、讀寫鎖、聯(lián)鎖和紅鎖等實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧2026-04-04

