预请求跨域配置

最近更新时间:2024-08-14 18:00:11

我的收藏

简介

本文介绍对象存储 COS 通过 JavaScript SDK 实现预请求跨域配置的示例代码和描述。

注意事项

在您进行 授权策略 时,action 需要设置为cos:OptionsObject,更多授权请参见 支持CAM的业务接口

前期准备

开始使用前,确保您已经完成了 跨域配置 并完成了 SDK 初始化

功能说明

OPTIONS Object 接口实现对对象进行跨域访问配置的预请求。即在发送跨域请求之前会发送一个 OPTIONS 请求并带上特定的来源域,HTTP 方法和 HEADER 信息等给 COS,以决定是否可以发送真正的跨域请求。当 CORS 配置不存在时,请求返回403 Forbidden。用户可以通过 PUT Bucket cors 接口来开启存储桶的 CORS 支持。

使用案例

cos.optionsObject({
Bucket: 'examplebucket-1250000000', // 填入您自己的存储桶,必须字段
Region: 'COS_REGION', // 存储桶所在地域,例如ap-beijing,必须字段
Key: '1.jpg', // 存储在桶里的对象键(例如1.jpg,a/b/test.txt),必须字段
Origin: 'https://www.qq.com', // 必须
AccessControlRequestMethod: 'PUT', // 必须
AccessControlRequestHeaders: 'origin,accept,content-type' // 非必须
}, function(err, data) {
console.log(err || data);
});

参数说明

参数名
参数描述
类型
是否必填
Bucket
存储桶的名称,命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式
String
Region
存储桶所在地域,枚举值请参见 地域和访问域名
String
Key
对象键(Object 的名称),对象在存储桶中的唯一标识,详情请参见 对象概述
String
Origin
模拟跨域访问的请求来源域名
String
AccessControlRequestMethod
模拟跨域访问的请求 HTTP 方法
String
AccessControlRequestHeaders
模拟跨域访问的请求头部
String

回调函数说明

function(err, data) { ... }
参数名
参数描述
类型
err
请求发生错误时返回的对象,包括网络错误和业务错误。如果请求成功则为空,更多详情请参见 错误码
Object
- statusCode
请求返回的 HTTP 状态码,例如200、403、404等
Number
- headers
请求返回的头部信息
Object
data
请求成功时返回的对象,如果请求发生错误,则为空
Object
- headers
请求返回的头部信息
Object
- statusCode
请求返回的 HTTP 状态码,例如200、403、404等
Number
- AccessControlAllowOrigin
模拟跨域访问的请求来源域名,中间用逗号间隔,当来源不允许的时候,此 Header 不返回,例如*
String
- AccessControlAllowMethods
模拟跨域访问的请求 HTTP 方法,中间用逗号间隔,当请求方法不允许的时候,此 Header 不返回,例如 PUT,GET,POST,DELETE,HEAD
String
- AccessControlAllowHeaders
模拟跨域访问的请求头部,中间用逗号间隔,当模拟任何请求头部不允许的时候,此 Header 不返回该请求头部。例如:accept,content-type,origin,authorization
String
- AccessControlExposeHeaders
跨域支持返回头部,中间用逗号间隔。例如:ETag
String
- AccessControlMaxAge
设置 OPTIONS 请求得到结果的有效期。例如:3600
String
- OptionsForbidden
OPTIONS 请求是否被禁止,如果返回的 HTTP 状态码为403,则为 true
Boolean

API 操作

关于预请求跨域配置接口涉及的 API 接口说明,请参见 OPTIONS Object 查看。