SpringBoot中怎么處理跨域資源共享

小億
88
2024-04-09 18:31:37

在SpringBoot中處理跨域資源共享可以通過(guò)以下幾種方式:

  1. 使用注解:可以在Controller類或者方法上使用@CrossOrigin注解來(lái)指定允許跨域請(qǐng)求的域名或者方法。
@CrossOrigin(origins = "http://example.com")
@RestController
public class MyController {
    // controller methods
}
  1. 配置類:可以創(chuàng)建一個(gè)配置類來(lái)配置CORS(跨域資源共享)的相關(guān)信息。
@Configuration
public class CorsConfig {
    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**").allowedOrigins("http://example.com");
            }
        };
    }
}
  1. 使用Filter:可以創(chuàng)建一個(gè)自定義的Filter來(lái)處理跨域請(qǐng)求。
@Component
public class CustomCorsFilter extends OncePerRequestFilter {
    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
        response.setHeader("Access-Control-Allow-Origin", "http://example.com");
        filterChain.doFilter(request, response);
    }
}

這些方法可以根據(jù)具體的需求選擇其中一種或者多種來(lái)處理跨域資源共享。

0