Springetway 如何解决跨域的

Spring Boot提供了一些配置来处理跨域问题。下面是几种解决跨域问题的方法:

1、使用CORS过滤器:在Spring Boot应用程序中,可以创建一个CORS过滤器,用于允许来自不同域的请求访问受保护的资源。要创建CORS过滤器,可以使用Spring Security或者自定义一个简单过滤器。使用Spring Security:@Configuration@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http // …
.cors().and().csrf().disable();
}}

自定义过滤器:
@Component
public class CorsFilter implements Filter { @Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res;
HttpServletRequest request = (HttpServletRequest) req; 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”, “x-requested-with”); chain.doFilter(req, res);
}}
将自定义过滤器添加到Spring Boot应用程序的配置中。

2、配置CORS属性:在Spring Boot应用程序的配置文件中,可以添加以下属性来配置CORS:

#application.properties
spring.mvc.cors.allowed-origins=http://example.com,http://sub.example.comspring.mvc.cors.allowed-methods=GET,POST,PUT,DELETE,OPTIONS
spring.mvc.cors.allowed-headers=X-Requested-With,Content-Type,Origin,Access-Control-Request-Method,Access-Control-Request-Headersspring.mvc.cors.max-age=3600

3、使用@CrossOrigin注解:在控制器类或方法上使用@CrossOrigin注解,可以指定哪些域可以访问受保护的资源。例如:@RestController
@CrossOrigin(origins = “http://example.com”)
public class MyController {
}

你可能感兴趣的:(Java面试题,开发语言,java,后端,中间件,开源软件)