接口功能介绍
浏览器在发送跨域请求之前会发送一个preflight请求(Options)给对象存储,并带上特定的来源域、HTTP方法和header等信息,以决定是否发送真正的请求。Options请求是由浏览器自动根据是否跨域来决定是否发送。
接口约束
无
URI
OPTIONS /{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 | |
Authorization | 是 | String | 用于验证请求合法性的认证信息 |
请求体body参数
无
响应参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 | 下级对象 |
---|---|---|---|---|---|
Access-Control-Allow-Origin | 是 | String | 请求中包含的Origin,如果不允许该请求,则响应头不包含该头部 | http://www.example.com | |
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 /testbucket/test
请求头header
Origin: http://example.ctyun.cn
Access-Control-Request-Method: PUT
Access-Control-Request-Headers: test1
Authorization: authorization string
请求体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://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 | InvalidArgument | 参数错误,如缺少Access-Control-Request-Method头 |
403 | AccessDenied | 用户没有权限执行操作 |
错误码
请参考 请求错误码(原生接口)。