跨域资源共享CORS(Cross-Origin Resource Sharing)简称跨域访问,是HTML5提供的标准跨域解决方案,允许Web应用服务器进行跨域访问控制,使得跨域数据传输得以安全进行。

背景信息

对象存储OSS提供HTML5协议中的跨域资源共享CORS设置,帮助您实现跨域访问。当OSS收到一个跨域请求(或者OPTIONS请求)时,会读取存储空间对应的CORS规则,然后进行相应的权限检查。OSS会依次检查每一条规则,使用第一条匹配的规则来允许请求并返回对应的Header。如果所有规则都匹配失败,则不附加任何CORS相关的Header。更多详情请参见设置跨域资源共享

注意
  • 每个存储空间最多可以配置10条跨域规则。
  • 如果您开启了CDN加速,并且需要进行跨域CORS访问,您需要在CDN控制台配置跨域规则。详情请参见CDN如何配置跨域资源共享(CORS)

操作步骤

  1. 登录OSS管理控制台
  2. 单击Bucket列表,之后单击目标Bucket名称。
  3. 单击权限管理 > 跨域设置,在跨域设置区域单击设置
  4. 单击创建规则,在设定跨域规则面板设置跨域访问参数。
    参数 是否必须 说明
    来源 指定允许的跨域请求的来源。配置规则如下:
    • 允许多条匹配规则,多条规则需换行填写。
    • 域名需包含协议名,例如HTTP、HTTPS。
    • 支持通配符星号(*),每条匹配规则允许使用最多一个星号(*)。
    • 若域名使用的不是默认端口,还需要携带端口号。例如:https://www.example.com:8080。
    域名配置示例如下:
    • 匹配指定域名时,填写完整域名,例如:https://www.example.com。
    • 匹配泛二级域名,可使用通配符星号(*)。例如:https://*.example.com。
    • 匹配所有域名,可直接填写通配符星号(*)。
    允许Methods 指定允许的跨域请求方法。
    允许Headers 指定允许跨域请求的响应头。配置规则如下:
    • 格式为key:value,例如content-type:text/plain,大小写不敏感。
    • 允许多条匹配规则,多条规则需换行填写。
    • 每条匹配规则最多使用一个星号(*)通配符。建议没有特殊需求的情况下设置为星号(*)。
    暴露Headers 指定允许用户从应用程序中访问的响应头。例如一个Javascript的XMLHttpRequest对象。不允许使用星号(*)通配符。
    缓存时间 指定浏览器对特定资源的预取(OPTIONS)请求返回结果的缓存时间。
    返回Vary: Origin 配置是否返回Vary: Origin Header。

    如果实际应用中同时存在CORS和非CORS请求,或者Origin头有多种可能值时,建议选中返回Vary: Origin以避免本地缓存错乱。

    注意 选中返回Vary: Origin后,可能会造成浏览器访问次数或者CDN回源次数增加。
  5. 单击确定