控制台指南

最佳实践

开发者指南

API 文档

SDK 文档

跨域访问

最近更新时间:2020-04-24 18:19:00

简介

本文档提供关于跨域访问的 API 概览以及 SDK 示例代码。

API 操作名 操作描述
PUT Bucket cors 设置跨域配置 设置存储桶的跨域名访问权限
GET Bucket cors 查询跨域配置 查询存储桶的跨域名访问配置信息
DELETE Bucket cors 删除跨域配置 删除存储桶的跨域名访问配置信息

设置跨域配置

注意:

  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
目录