接口介绍
浏览器在发送跨域请求之前会发送一个preflight请求(Options)给对象存储,并带上特定的来源域、HTTP方法和Header等信息,以决定是否发送真正的请求。Options请求是由浏览器自动根据是否跨域来决定是否发送。
接口约束
无
请求URI
OPTIONS /v1/{bucket}/{objectName}
路径参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
bucket | 是 | String | 桶名称 | testBucket |
objectName | 是 | String | 预检查的对象名 | test |
Query参数
无
请求参数
请求头header参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
Origin | 是 | String | 请求来源域,用于标识跨域请求。在实际请求中只能设置一个该请求头。 | http://www.example.ctyun.cn | |
Access-Control-Request-Method | 是 | String | 在实际请求中会用到的方法。在实际请求中只能设置一个该请求头。 | POST | |
Access-Control-Request-Headers | 否 | String | 在实际请求中会用到的请求头。 | test1 |
请求体body参数
无
响应参数
响应头参数
参数 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|
Access-Control-Allow-Origin | String | 请求中包含的Origin。如果不允许该请求,则响应头不包含该头部。 | http://example.ctyun.cn | |
Access-Control-Allow-Methods | String | 允许请求的HTTP方法。如果不允许该请求,则响应头不包含该头部。 | PUT | |
Access-Control-Allow-Headers | String | 允许请求携带的header的列表。如果请求中有不被允许的header,则不包含该头部,请求也将被拒绝。 | test1 | |
Access-Control-Expose-Headers | String | 允许在客户端JavaScript程序中访问的headers的列表,只有在设置跨域的时候传入ExposeHeader参数,此处才会返回。 | test2 | |
Access-Control-Max-Age | Integer | 允许浏览器缓存preflight结果的时间,单位为秒。 | 100 |
请求示例
OPTIONS /v1/testbucket/test
请求头header
Origin: http://www.example.ctyun.cn
Access-Control-Request-Method: PUT
Access-Control-Request-Headers: test1
请求体body
无
响应示例
HTTP/1.1 200 OK
x-amz-request-id: BDC4B83DF5096BBE
Date: Wed, 21 Aug 2012 23:09:55 GMT
Etag: "1f1a1af1f1111111111111c11aed1da1"
Access-Control-Allow-Origin: http://www.example.ctyun.cn
Access-Control-Allow-Methods: PUT
Access-Control-Allow-Headers: test1
Access-Control-Expose-Headers: test2
Access-Control-Max-Age: 100
Content-Length: 0
状态码
HTTP状态 | 描述 |
---|---|
200 | 操作成功 |
400 | 参数错误,如缺少Access-Control-Request-Method头 |
403 | 用户没有权限执行操作 |