allowedOrigins使用案例及其详细说明
时间: 2024-04-21 10:24:05 浏览: 99
`allowedOrigins` 是一个用于配置 CORS(跨源资源共享)的属性,用于指定允许访问资源的源。它可以在服务器端配置,以控制跨域请求的访问权限。
下面是一个使用 `allowedOrigins` 的案例和详细说明:
```java
@Configuration
@EnableWebMvc
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://example.com")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("Content-Type", "Authorization")
.exposedHeaders("Custom-Header")
.allowCredentials(true)
.maxAge(3600);
}
}
```
在上面的示例中,我们创建了一个名为 `CorsConfig` 的类,并实现了 `WebMvcConfigurer` 接口,以定制 CORS 配置。
通过调用 `addCorsMappings` 方法,我们可以为特定路径配置 CORS 设置。在示例中,我们将 `/api/**` 路径下的请求配置为允许来自 "http://example.com" 域的访问。
以下是对上述示例中各个方法的详细说明:
- `allowedOrigins("http://example.com")`:指定允许访问资源的源。可以使用通配符 `*` 表示所有来源,或者指定具体的来源。
- `allowedMethods("GET", "POST", "PUT", "DELETE")`:指定允许的 HTTP 方法。这里我们设置了 GET、POST、PUT 和 DELETE 方法,其他方法将被禁止。
- `allowedHeaders("Content-Type", "Authorization")`:指定允许的 HTTP 请求头。这里我们设置了 Content-Type 和 Authorization 请求头,其他请求头将被禁止。
- `exposedHeaders("Custom-Header")`:指定允许客户端访问的响应头。这里我们设置了 Custom-Header 响应头,客户端可以访问该响应头。
- `allowCredentials(true)`:指定是否允许发送身份凭证(如 Cookies、HTTP 认证等)到服务器。设置为 true 表示允许发送身份凭证,设置为 false 表示禁止发送身份凭证。
- `maxAge(3600)`:指定预检请求的最大缓存时间(单位为秒)。预检请求是浏览器在发送真正的跨域请求之前发送的 OPTIONS 请求,用于判断是否允许跨域访问。设置 maxAge 为 3600 秒表示在此期间内浏览器可以重复使用此预检结果,无需再次发送预检请求。
通过以上配置,服务器将允许来自 "http://example.com" 域的 GET、POST、PUT 和 DELETE 请求访问 `/api/**` 路径下的资源,并允许发送 Content-Type 和 Authorization 请求头。服务器还会将 Custom-Header 响应头暴露给客户端,并允许发送身份凭证。预检请求的结果将在 3600 秒内缓存。
请注意,以上示例是基于 Spring MVC 的配置方式,并非唯一的配置方式,具体的配置方法可能因框架和环境而有所不同。在实际使用中,你需要根据自己的需求和环境进行适当的调整和配置。
阅读全文