📜  addCorsMappings registry.addMapping - CSS (1)

📅  最后修改于: 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

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

如果您需要更加细粒度的控制或需要添加一些拦截器,可以使用 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;
    }
  }
}

上述示例中,使用了 CorsRegistrationallowedOriginsallowedMethodsallowCredentialsmaxAge 方法来配置 CORS 映射规则,并使用 interceptors 方法添加了一个拦截器,可以对请求进行更加细粒度的控制处理。

结语

以上就是关于 addCorsMappings 方法的介绍。通过了解该方法,开发者可以更好的掌握 Spring Framework 中关于跨域资源共享的配置方法,从而更加方便地进行开发。