OPTIONSObject
更新时间:2026-09-20
接口描述
浏览器在发送跨域请求之前,会发送一个 preflight 请求(OPTIONS),并携带特定的来源域、HTTP 方法和 Header 信息等给 BOS,以决定是否发送真正的请求。本接口用于响应这种请求。
OPTIONS Object 操作不需要进行鉴权。
请求
请求结构
Http
1OPTIONS /<ObjectKey> HTTP/1.1
2Host: <BucketName>.bj.bcebos.com
3Origin: <Origin>
4Access-Control-Request-Method: <HTTPMethod>
5Access-Control-Request-Headers: <RequestHeader>
请求参数
无。
请求头域
| 名称 | 类型 | 位置 | 是否必需 | 默认值 | 说明 |
|---|---|---|---|---|---|
| Origin | String | Header | 是 | 无 | 请求来源域,用来标识跨域请求,只允许一个来源域。 |
| Access-Control-Request-Method | String | Header | 是 | 无 | 实际请求中将会用到的方法,只允许一个方法。取值为 PUT、GET、DELETE、POST、HEAD。 |
| Access-Control-Request-Headers | String | Header | 否 | 无 | 实际请求中会用到的、除了简单头部之外的 Header。多个 Header 用英文逗号分隔。 |
响应
响应头域
| 名称 | 类型 | 说明 |
|---|---|---|
| Access-Control-Allow-Credentials | String | BOS 的 Server 端是否允许客户端在请求中带 Cookie。需要客户端和 Server 端同时允许才能生效。BOS 在请求通过时会返回允许,即值为 true,大小写敏感。 |
| Access-Control-Allow-Headers | String | 允许请求携带的 Header 列表。如果请求中有不被允许的 Header,则 CORS 规则匹配失败,返回不包含任何 Access-Control- 开头的头部。多个 Header 用英文逗号分隔。返回仅包括此次请求的 Header 列表,而不管配置文件中是否配置了更多被允许的 Header。 |
| Access-Control-Allow-Methods | String | 允许请求的 HTTP 方法。如果不允许该请求,则不包含该头部以及所有 Access-Control-* 相关的头部。返回的是所有允许的 allowedMethods 列表,而不仅仅包括此次请求的 method。 |
| Access-Control-Allow-Origin | String | 请求中包含的 Origin。如果不允许该请求,则不包含该头部以及所有 Access-Control-* 相关的头部。 |
| Access-Control-Expose-Headers | String | 允许在请求端的 JavaScript 程序中访问的 Header 列表,与配置文件中的 exposeHeaders 对应。 |
| Access-Control-Max-Age | Integer | 允许浏览器缓存 preflight 结果的时间,单位为秒。 |
| x-bce-request-id | String | BOS 返回的请求 ID,用于定位和排查问题。 |
响应参数
无。
注意事项
- 当 CORS 收到 OPTIONS 请求后,会读取 Bucket 对应的 CORS 规则,然后进行相应的权限检查。整个检查会依次检查每一条规则,使用第一条匹配的规则来允许请求并返回对应的 Header。如果所有规则都匹配失败则不附加任何 CORS 相关的 Header。
CORS 规则匹配成功必须满足三个条件:
- 请求的 Origin 必须匹配 allowedOrigins 中一项。
- OPTIONS 请求的 Access-Control-Request-Method 头对应的方法必须匹配 allowedMethods 中一项。
- OPTIONS 请求的 Access-Control-Request-Headers 头包含的每个 Header 都必须匹配 allowedHeaders 项,只要有一个不符合则整体失败。
示例
请求示例
Http
1OPTIONS /object HTTP/1.1
2Host: BucketName.bj.bcebos.com
3Origin: http://www.example.com
4Access-Control-Request-Method: GET
5Access-Control-Request-Headers: x-bce-test
响应示例
Http
1HTTP/1.1 200 OK
2x-bce-request-id: 36bf3dfb-a6c0-466e-951d-cf4837e89f8b
3Date: Thu, 04 Jun 2026 02:19:16 GMT
4Access-Control-Allow-Origin: http://www.example.com
5Access-Control-Allow-Methods: GET, HEAD, DELETE
6Access-Control-Allow-Headers: x-bce-test
7Access-Control-Expose-Headers: user-custom-expose-header
8Access-Control-Max-Age: 3600
9Access-Control-Allow-Credentials: true
10Content-Length: 0
11Server: BceBos
评价此篇文章
