为了让前端项目能够顺利调用后端接口,我们需要在后端配置跨域支持。在 config 包下创建跨域配置类,代码如下:
/**
* 全局跨域配置
*/
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
// 覆盖所有请求
registry.addMapping("/**")
// 允许发送 Cookie
.allowCredentials(true)
// 放行哪些域名(必须用 patterns,否则 * 会和 allowCredentials 冲突)
.allowedOriginPatterns("*")
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.allowedHeaders("*")
.exposedHeaders("*");
}
}
我是一个springboot初学者.我想知道这是为了解决什么问题?为什么要这么做?详细解释一下代码.
回答: 你好!作为一名 Spring Boot 初学者,能问出这个问题非常好。这是在现代 Web 开发中一个极其重要且常见的知识点。
我来为你详细解释一下这段代码的作用、它解决了什么问题,以及为什么你需要这样做。
一句话总结:这段代码解决了浏览器的“同源策略”(Same-Origin Policy)所导致的“跨域请求”(CORS)问题。
“同源策略”是浏览器的一种核心安全功能。它规定,一个网页(脚本)只能向**与它自己“同源”**的服务器发起请求。
“源”(Origin)由三个部分组成:
http:// 或 https://localhost 或 www.google.com:8080 或 :3000只有这三者完全一致,才算“同源”。
在现代的“前后端分离”开发模式中,你的项目通常分为两部分:
http://localhost:3000http://localhost:8080