OptionObject
浏览器在发送跨域请求之前会发送一个preflight请求(OPTIONS)给OSS,并带上特定的来源域、HTTP方法和header等信息,以决定是否发送真正的请求。
请求语法
OPTIONS /ObjectName HTTP/1.1
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Origin:Origin
Access-Control-Request-Method:HTTP method
Access-Control-Request-Headers:Request Headers
请求头
名称 | 类型 | 描述 |
---|---|---|
Origin | 字符串 |
请求来源域,用来标示跨域请求。 默认值:无 |
Access-Control-Request-Method | 字符串 |
表示在实际请求中将会用到的方法。 默认值:无 |
Access-Control-Request-Headers | 字符串 |
表示在实际请求中会用到的除了简单头部之外的头。 默认值:无 |
响应头
名称 | 类型 | 描述 |
---|---|---|
Access-Control-Allow-Origin | 字符串 |
请求中包含的Origin。如不允许该请求,则响应头不包含该头部。 |
Access-Control-Allow-Methods | 字符串 |
允许请求的HTTP方法。如不允许该请求,则响应头不包含该头部。 |
Access-Control-Allow-Headers | 字符串 |
允许请求携带的header的列表。如果请求中有不被允许的header,则不包含该头部,请求也将被拒绝。 |
Access-Control-Expose-Headers | 字符串 |
允许在客户端JavaScript程序中访问的headers的列表。 |
Access-Control-Max-Age | 整型 |
允许浏览器缓存preflight结果的时间,单位为秒。 |
示例
请求示例
OPTIONS /testobject HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 24 Feb 2012 05:45:34 GMT
Origin:http://www.example.com
Access-Control-Request-Method:PUT
Access-Control-Request-Headers:x-oss-test
返回示例
HTTP/1.1 200 OK
x-oss-request-id: 5051845BC4689A033D00****
Date: Fri, 24 Feb 2012 05:45:34 GMT
Access-Control-Allow-Origin: http://www.example.com
Access-Control-Allow-Methods: PUT
Access-Control-Expose-Headers: x-oss-test
Connection: keep-alive
Content-Length: 0
Server: AliyunOSS
错误码
错误码 | HTTP 状态码 | 描述 |
---|---|---|
Forbidden | 403 | OSS可以通过PutBucketCORS接口来开启Bucket的CORS功能。开启CORS功能后,OSS在收到浏览器preflight请求时会根据设定的规则评估是否允许本次请求,如果不允许或者CORS功能没有开启,则返回此错误码。 |
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论