Spring Boot配置跨域的方法有以下幾種:
使用注解:在Controller類或者方法上使用@CrossOrigin
注解來配置跨域訪問。可以通過設置origins
屬性指定允許訪問的域名,通過設置methods
屬性指定支持的HTTP方法,通過設置maxAge
屬性指定響應的最大生存時間(單位為秒)。
@RestController
@RequestMapping("/api")
@CrossOrigin(origins = "http://example.com", methods = {RequestMethod.GET, RequestMethod.POST}, maxAge = 3600)
public class MyController {
// ...
}
使用WebMvcConfigurer:通過實現WebMvcConfigurer
接口,重寫addCorsMappings
方法來配置全局的跨域訪問。可以通過調用addMapping
方法指定允許訪問的路徑,通過調用allowedOrigins
方法指定允許訪問的域名,通過調用allowedMethods
方法指定支持的HTTP方法,通過調用maxAge
方法指定響應的最大生存時間(單位為秒)。
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://example.com")
.allowedMethods("GET", "POST")
.maxAge(3600);
}
}
使用Filter:通過自定義一個Filter
來處理跨域請求,設置響應的Access-Control-Allow-Origin
、Access-Control-Allow-Methods
和Access-Control-Max-Age
響應頭。
@Component
public class CorsFilter 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://example.com");
response.setHeader("Access-Control-Allow-Methods", "GET, POST");
response.setHeader("Access-Control-Max-Age", "3600");
chain.doFilter(req, res);
}
}
以上是Spring Boot配置跨域的幾種方法,根據實際需求選擇適合的方法進行配置。