📅  最后修改于: 2023-12-03 15:13:15.732000             🧑  作者: Mango
addCorsMappings
方法介绍addCorsMappings
是 Spring Framework 中用来配置跨域资源共享(CORS)的方法。该方法用于添加一些映射规则,以确保客户端能够通过 CORS 发送请求到服务器。
addCorsMappings
方法有两个重载方法,分别如下:
void addCorsMappings(CorsRegistry registry)
void addCorsMappings(CorsRegistration registration)
其中,第一个方法将 CorsRegistry 对象作为参数,第二个方法将 CorsRegistration 对象作为参数。
CorsRegistry
是一个由 Spring Framework 提供的类,用于配置 CORS 映射规则。通过调用 addMapping
方法来添加一个 CORS 映射。下面是一个示例:
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://localhost:8080")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowCredentials(false)
.maxAge(3600);
}
}
上述示例中,使用 addMapping
方法添加一个 "/api/**"
的映射规则,允许来自 http://localhost:8080
的请求发送到服务器,并允许使用 "GET", "POST", "PUT", "DELETE" 这几种方法。allowCredentials
方法用于指定是否允许发送 Cookie 等身份验证信息,maxAge
用于指定 CORS Preflight 请求的最大缓存时间。
如果您需要更加细粒度的控制或需要添加一些拦截器,可以使用 CorsRegistration
对象来代替 CorsRegistry
。下面是一个示例:
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
CorsRegistration registration = registry.addMapping("/api/**");
registration.allowedOrigins("http://localhost:8080")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowCredentials(false)
.maxAge(3600);
registration.interceptors(new CorsInterceptor());
}
private static class CorsInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
// Your code here
return true;
}
}
}
上述示例中,使用了 CorsRegistration
的 allowedOrigins
、allowedMethods
、allowCredentials
、maxAge
方法来配置 CORS 映射规则,并使用 interceptors
方法添加了一个拦截器,可以对请求进行更加细粒度的控制处理。
以上就是关于 addCorsMappings
方法的介绍。通过了解该方法,开发者可以更好的掌握 Spring Framework 中关于跨域资源共享的配置方法,从而更加方便地进行开发。