跨域访问

最近更新时间:2023-06-21 17:48:43

我的收藏

简介

本文档提供关于跨域访问的 API 概览以及 SDK 示例代码。
API
操作名
操作描述
设置跨域配置
设置存储桶的跨域名访问权限
查询跨域配置
查询存储桶的跨域名访问配置信息
删除跨域配置
删除存储桶的跨域名访问配置信息

设置跨域配置

注意
1. 如果要在前端修改跨域访问配置,需要该存储桶本身支持跨域,您可以在控制台进行跨域访问配置,详情请参见 快速入门 文档。
2. 在修改跨域访问配置时,请注意不要影响到当前的 Origin 下的跨域请求。

功能说明

设置存储桶的跨域名访问权限,您可以通过传入 XML 格式的配置文件来实现配置,文件大小限制为64KB。默认情况下,存储桶的持有者直接有权限使用该 API 接口,存储桶持有者也可以将权限授予其他用户。关于跨域访问的更多说明请参见 跨域访问,通过控制台设置跨域的操作步骤请参见 设置跨域访问跨域访问最佳实践文档

请求示例

cos.putBucketCors({
Bucket: 'examplebucket-1250000000', /* 必须 */
Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */
CORSRules: [{
"AllowedOrigin": ["*"],
"AllowedMethod": ["GET", "POST", "PUT", "DELETE", "HEAD"],
"AllowedHeader": ["*"],
"ExposeHeader": ["ETag", "x-cos-acl", "x-cos-version-id", "x-cos-delete-marker", "x-cos-server-side-encryption"],
"MaxAgeSeconds": "5"
}]
}, function(err, data) {
console.log(err || data);
});

参数说明

参数名称
描述
类型
是否必填
Bucket
设置跨域配置的存储桶,格式:BucketName-APPID
String
Region
存储桶所在地域,枚举值请参见 地域和访问域名
String
CORSRules
说明跨域资源共享配置的所有信息列表
ObjectArray
- ID
配置规则的 ID
String
- AllowedMethods
允许的 HTTP 操作,枚举值:GET、PUT、HEAD、POST、DELETE 等
StringArray
- AllowedOrigins
允许的访问来源,支持通配符*,格式为:协议://域名[:端口],例如:http://www.qq.com
StringArray
- AllowedHeaders
在发送 OPTIONS 请求时告知服务端,接下来的请求可以使用哪些自定义的 HTTP 请求头部,支持通配符*
StringArray
- ExposeHeaders
设置浏览器可以接收到的来自服务器端的自定义头部信息
StringArray
- MaxAgeSeconds
设置 OPTIONS 请求得到结果的有效期
String

回调函数说明

function(err, data) { ... }
参数名
参数描述
类型
err
请求发生错误时返回的对象,包括网络错误和业务错误。如果请求成功则为空,更多详情请参见 错误码 文档
Object
- statusCode
请求返回的 HTTP 状态码,例如200、403、404等
Number
- headers
请求返回的头部信息
Object
data
请求成功时返回的对象,如果请求发生错误,则为空
Object
- statusCode
请求返回的 HTTP 状态码,例如200、403、404等
Number
- headers
请求返回的头部信息
Object

查询跨域配置

功能说明

GET Bucket cors 接口实现查询存储桶的跨域名访问配置信息。(CORS 是一个 W3C 标准,全称是"跨域资源共享"(Cross-origin Resource Sharing))。默认情况下,存储桶的持有者直接有权限使用该 API 接口,存储桶持有者也可以将权限授予其他用户。

请求示例

cos.getBucketCors({
Bucket: 'examplebucket-1250000000', /* 必须 */
Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */
}, function(err, data) {
console.log(err || data);
});

返回示例

{
"CORSRules": [{
"MaxAgeSeconds": "5",
"AllowedOrigins": ["*"],
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "POST", "PUT", "DELETE", "HEAD"],
"ExposeHeaders": ["ETag", "Content-Length", "x-cos-acl", "x-cos-version-id", "x-cos-request-id", "x-cos-delete-marker", "x-cos-server-side-encryption"]
}],
"statusCode": 200,
"headers": {}
}

参数说明

参数名
参数描述
类型
是否必填
Bucket
查询跨域配置的存储桶,格式:BucketName-APPID
String
Region
存储桶所在地域,枚举值请参见 地域和访问域名
String

回调函数说明

function(err, data) { ... }
参数名
参数描述
类型
err
请求发生错误时返回的对象,包括网络错误和业务错误。如果请求成功则为空,更多详情请参见 错误码 文档
Object
data
请求成功时返回的对象,如果请求发生错误,则为空
Object
- CORSRules
说明跨域资源共享配置的所有信息列表
ObjectArray
- - AllowedMethods
允许的 HTTP 操作,枚举值:GET、PUT、HEAD、POST、DELETE
StringArray
- - AllowedOrigins
允许的访问来源,支持通配符*,格式为:协议://域名[:端口]
例如:http://www.qq.com
StringArray
- - AllowedHeaders
在发送 OPTIONS 请求时告知服务端,接下来的请求可以使用哪些自定义的 HTTP 请求头部,支持通配符*
StringArray
- - ExposeHeaders
设置浏览器可以接收到的来自服务器端的自定义头部信息
StringArray
- - MaxAgeSeconds
设置 OPTIONS 跨域信息缓存秒数
String
- - ID
配置规则的 ID
String

删除跨域配置

功能说明

删除存储桶的跨域名访问配置信息。
注意
1. 删除当前存储桶的跨域访问配置信息,会导致所有请求跨域失败,请谨慎操作。
2. 不推荐在浏览器端使用该方法。

请求示例

cos.deleteBucketCors({
Bucket: 'examplebucket-1250000000', /* 必须 */
Region: 'COS_REGION', /* 存储桶所在地域,必须字段 */
}, function(err, data) {
console.log(err || data);
});

参数说明

参数名
参数描述
类型
是否必填
Bucket
被删除跨域配置的存储桶,格式:BucketName-APPID
String
Region
存储桶所在地域,枚举值请参见 地域和访问域名
String

回调函数说明

function(err, data) { ... }
参数名
参数描述
类型
err
请求发生错误时返回的对象,包括网络错误和业务错误。如果请求成功则为空,更多详情请参见 错误码 文档
Object
- statusCode
请求返回的 HTTP 状态码,例如200、403、404等
Number
- headers
请求返回的头部信息
Object
data
请求成功时返回的对象,如果请求发生错误,则为空
Object
- statusCode
请求返回的 HTTP 状态码,例如200、403、404等
Number
- headers
请求返回的头部信息
Object