Spring Boot解决跨域问题的3种方案
在Spring Boot中解决跨域问题,可以通过以下三种方式:
- 全局配置:使用
@CrossOrigin
注解。
@CrossOrigin(origins = "http://other-domain.com")
@RestController
public class MyController {
// ...
}
- 配置类中配置:使用
WebMvcConfigurer
接口。
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://other-domain.com")
.allowedMethods("GET", "POST", "PUT", "DELETE");
}
}
- 使用Filter:自定义跨域过滤器。
@Component
public class SimpleCORSFilter 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", "http://other-domain.com");
response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
chain.doFilter(req, res);
}
// ...
}
以上三种方式可以根据实际需求选择使用。全局配置适合简单场景,配置类和过滤器适合更复杂或需要更多控制的场景。
评论已关闭