Spring Boot全局配置实现CORS的前后端应用实例

版权申诉
5星 · 超过95%的资源 207 下载量 39 浏览量 更新于2025-02-11 1 收藏 70KB RAR 举报
在当今的Web开发中,前后端分离架构被广泛采用,这就不可避免地涉及到跨域资源共享(Cross-Origin Resource Sharing,简称CORS)的问题。CORS是一个W3C标准,它允许一个域(源)上的Web应用去访问另一个域的资源,这对于前后端分离的应用尤为关键。在这篇文章中,我们将探讨Spring Boot项目如何实现全局配置CORS,以支持前端项目的请求。 首先,我们需要了解什么是CORS以及为什么需要它。在Web应用中,出于安全考虑,浏览器实现了一个同源策略(Same-Origin Policy),这意味着只有来自同一个源(协议、域名和端口号都相同)的Web页面才能相互访问对方的资源。然而,在现代Web开发中,前端和后端往往部署在不同的域下,这就产生了跨域请求的问题。为了解决这个问题,浏览器引入了CORS机制,它允许服务器声明哪些源可以访问哪些资源。 在Spring Boot中,可以使用内置的CORS支持来处理跨域请求。这可以通过全局配置或者在特定的Controller层添加注解来实现。全局配置的方式是通过实现WebMvcConfigurer接口,并重写addCorsMappings方法来设置跨域的规则。下面是一个具体的例子,展示了如何在Spring Boot项目中配置全局CORS: ```java 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 WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") // 拦截所有请求 .allowedOrigins("http://localhost:3000") // 允许跨域的源地址 .allowedMethods("GET", "POST", "PUT", "DELETE") // 允许跨域的HTTP方法 .allowCredentials(true) // 是否允许发送Cookie .maxAge(3600); // 预检请求的缓存时间(秒) } } ``` 在上述代码中,我们设置了一个WebMvcConfigurer的Bean,它配置了所有路径("/**")下的跨域请求。我们指定了允许跨域的源地址、HTTP方法、是否允许携带凭证(如Cookies)以及预检请求的缓存时间。这样一来,无论前端应用在哪个端口,只要它符合我们设定的条件,就能成功请求到后端资源。 关于本资源提供的文件,解压后得到的blog2文件夹包含了后端的Java代码项目,它是通过Maven构建的。在这个项目中,应该包含了相应的全局CORS配置。而testFrontEnd文件夹则包含了前端项目,该项目应该能够向后端发送请求并接收到预期的响应,从而验证跨域配置是否生效。 在实际的应用中,CORS配置可能需要根据具体需求进行调整。例如,在生产环境中,可能需要允许多个不同的前端地址进行跨域请求。此外,还可能根据不同的请求路径设置不同的CORS规则,这些都是通过addCorsMappings方法中提供的参数来实现的。 总结来说,Spring Boot中全局配置CORS相对简单,通过实现WebMvcConfigurer接口并重写addCorsMappings方法,即可完成大部分需求。当然,在复杂的应用场景中,还需要对CORS规则进行细致的调整和优化。通过本次提供的示例项目,开发者可以更直观地理解如何在Spring Boot中配置CORS,以便在自己的项目中灵活运用。
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部