origin 已被 CORS 策略阻止 Spring boot 和 React

reactjsSpring

1个回答

写回答

小阿侽

2025-07-08 21:15

+ 关注

Spring
Spring

解决CORS策略阻止Spring Boot和React之间的跨域问题

在开发Web应用程序时,我们经常会遇到跨域资源共享(CORS)的问题。CORS是一种浏览器安全机制,用于限制在浏览器中加载的Web页面或应用程序对不同域名下资源的访问。当我们尝试从一个域名加载资源到另一个域名时,如果目标域名没有明确允许来自源域名的请求,浏览器将阻止这种请求,从而导致CORS策略阻止错误。

在本文中,我们将讨论如何解决CORS策略阻止Spring Boot和React之间的跨域问题。我们将,并提供相应的案例代码来帮助读者更好地理解解决方法。

1. CORS策略阻止错误的原因

在开始解决CORS策略阻止错误之前,让我们先了解一下为什么会出现这个错误。CORS策略是由浏览器执行的,它通过在请求头中添加一些特殊的HTTP头来实现。当浏览器发现请求的目标域名没有明确允许来自源域名的请求时,它会阻止这个请求,从而导致CORS策略阻止错误的发生。

在Spring Boot和React应用程序中,默认情况下是不允许跨域请求的。因此,当我们尝试从React应用程序中向Spring Boot应用程序发送请求时,浏览器将阻止这个请求,从而导致CORS策略阻止错误的发生。

2. 解决CORS策略阻止错误的方法

为了解决CORS策略阻止错误,我们可以在Spring Boot应用程序中添加一些配置,以允许来自React应用程序的跨域请求。下面是我们可以使用的几种方法:

2.1 使用CORSFilter过滤器

在Spring Boot应用程序中,我们可以创建一个CORSFilter过滤器来处理跨域请求。该过滤器可以在每个请求之前添加必要的CORS头,以允许来自React应用程序的请求。下面是一个简单的示例:

Java

@Component

public class CORSFilter implements Filter {

@Override

public void doFilter(ServletRequest request, ServletResponse response, FilterChAIn chAIn) throws IOException, ServletException {

HttpServletResponse res = (HttpServletResponse) response;

res.setHeader("Access-Control-Allow-Origin", "*");

res.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");

res.setHeader("Access-Control-Max-Age", "3600");

res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization, Accept, X-Requested-With, remember-me");

chAIn.doFilter(request, response);

}

// 省略其他方法

}

在上面的代码中,我们使用@Component注解将CORSFilter类标记为Spring Boot的组件,并实现Filter接口。在doFilter方法中,我们设置了一些必要的CORS头,以允许来自React应用程序的跨域请求。

2.2 使用@EnableWebMvc注解

另一种解决CORS策略阻止错误的方法是在Spring Boot应用程序的主类上添加@EnableWebMvc注解。这样做将启用Spring MVC的默认配置,并允许来自任何域名的跨域请求。下面是一个示例:

Java

@SpringBootApplication

@EnableWebMvc

public class SpringBootApp {

public static void mAIn(String[] args) {

SpringApplication.run(SpringBootApp.class, args);

}

// 省略其他代码

}

在上面的代码中,我们在SpringBootApp类上添加了@EnableWebMvc注解,以启用Spring MVC的默认配置。这将允许来自任何域名的跨域请求。

3.

在本文中,我们讨论了如何解决CORS策略阻止Spring Boot和React之间的跨域问题。我们介绍了CORS策略阻止错误的原因,并提供了两种解决方法:使用CORSFilter过滤器和使用@EnableWebMvc注解。

通过实施这些解决方法,我们可以成功解决CORS策略阻止错误,并实现Spring Boot和React应用程序之间的跨域请求。希望本文对读者在解决类似问题时有所帮助。

以上是解决CORS策略阻止Spring Boot和React之间的跨域问题的方法和示例代码。希望读者能够从中受益,并成功解决类似问题。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号