开发者社区> 鸣镝> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

OSS跨域资源共享(CORS)错误及排除

简介: CORS程序的错误及排除方法
+关注继续查看

介绍

跨域资源共享(Cross-Origin Resource Sharing, CORS),介绍及配置请参看 跨域资源共享使用指南

配置项

CORS配置有以下几项:

  • 来源(AllowedOrigin):允许跨域请求的来源,可以同时指定多个。配置时需带上完整的域信息,例如http://10.100.100.100:8001https://www.aliyun.com。注意, 不要遗漏了协议名http或https ,如果端口不是默认的80,还需要带上端口。如果不能确定的域名,可以打开浏览器的调试功能,查看header中的Origin。域名支持通配符*,每个域名中允许最多使用一个*,例如https://*.aliyun.com。如果来源指定为*,则表示允许所有来源的跨域请求。
  • Method:按照需求开通对应的方法即可,调试时可以全部选择。
  • Allow Header:允许的跨域请求header。允许配置多条匹配规则,以回车间隔。在Access-Control-Request-Headers中指定的每个header,都必须在Allowed Header中有对应项。Header容易遗漏,没有特殊需求的情况下,建议设置为*,表示允许所有。大小写不敏感。
  • Expose Header:暴露给浏览器的header列表,即用户从应用程序中访问的响应头(例如一个Javascript的XMLHttpRequest对象)。不允许使用通配符。具体的配置需要根据应用的需求确定,只暴露需要使用的header。如果不需要暴露可以不填。大小写不敏感。该项是可选配置项。
  • 缓存时间(MaxAgeSeconds):浏览器对特定资源的预取请求(OPTIONS请求)返回结果的缓存时间,单位为秒。如果没有特殊情况可以稍大一点,比如60秒。该项是可选配置项。

CORS的配置方法一般是针对每个访问来源单独配置规则,不将多个来源混到一个规则,多个规则之间不要有覆盖冲突。其它的选项只开放需要的权限即可。

错误排除

报错

CORS配置错误会报如下错误:

  • 浏览器报类似如下错误:
OPTIONS http://bucket.oss-cn-beijing.aliyuncs.com/
XMLHttpRequest cannot load http://bucket.oss-cn-beijing.aliyuncs.com/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '{yourwebsiet}' is therefore not allowed access. The response had HTTP status code 403.
  • OSS报如下错误:
<Code>AccessForbidden</Code>
<Message>CORSResponse: This CORS request is not allowed. This is usually because the evalution of Origin, request method / Access-Control-Request-Method or Access-Control-Requet-Headers are not whitelisted by the resource's CORS spec.</Message>

提示:

  • CORS报错一般是站点类应用导致,浏览器中可以查看请求详情。如Chrome,按 F12 打开 开发者工具 ,在 Network 中查看相应元素;
  • OSS返回的错误可以通过抓包获取。如使用Wireshark,筛选器可以指定为 host bucket-name.oss-cn-beijing.aliyuncs.com
  • OSS返回的错误也可以通过CORS的调试程序 oss-h5-upload-js-direct 界面提示获取。

其它错误请参看 常见错误及排除

排错

CORS可能错误如下:

  • 来源(AllowedOrigin)配置不正确;
  • Method(AllowedMethod)配置错误;
  • Allow Header配置错误;
  • Expose Header配置错误。

调试方法:

  • 来源(AllowedOrigin)设置成*,确认该配置项无误。如果成*后可以成功上传,说明是来源(AllowedOrigin)配置错误,请根据规则认真检查;
  • Method(AllowedMethod) 全部选择(GET、PUT、DELETE、POST、HEAD) ,确认该配置项目无误;
  • Allow Header配置成*,确认该配置无误;
  • Expose Header设置为指定值或者不填,确认该项配置无误。

提示:

  • 在控制台的对象存储OSS -> Bucket -> Bucket属性 -> 跨域设置 配置上述选项。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
X-Pack Spark 访问OSS
简介 对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
345 0
访问oss出现报错:You have no right to access this object because of bucket acl
访问oss出现报错:You have no right to access this object because of bucket acl 也配置bucket权限和RAM用户权限了但是还是报错,然后看了下代码,发现到httpClient.execute(req)就直接403了 能问下大佬们这是什么问题吗,百度也没找到
0 0
Presto 访问 OSS 透明缓存加速 | 学习笔记
快速学习 Presto 访问 OSS 透明缓存加速。
0 0
Spark 访问 OSS 透明缓存加速 | 学习笔记
快速学习Spark 访问 OSS 透明缓存加速。
0 0
Hadoop/Spark 访问 OSS 加速 | 学习笔记
快速学习Hadoop/Spark 访问 OSS 加速。
0 0
访问 OSS 这类对象存储最快的方式- JindoFS SDK |学习笔记
快速学习 访问 OSS 这类对象存储最快的方式- JindoFS SDK
0 0
通过OSS外表访问OSS数据
原文地址:通过OSS外表访问OSS数据 - 云原生关系型数据库 PolarDB MySQL引擎 - 阿里云PolarDB可以通过OSS外表直接查询存储在OSS上的CSV格式数据,有效地降低存储的成本。本文档主要介绍了通过OSS外表访问OSS数据的操作步骤。背景信息通过OSS外表,您可以把CSV格式的冷数据存储在OSS引擎上,并对冷数据进行查询和分析。具体原理如下:CSV格式的数据支持的数据类型包括
0 0
CEN+私网NAT实现跨地域访问OSS需求-CEN基础版
CEN+私网NAT实现跨地域访问OSS需求-CEN基础版
0 0
oss资源访问连接问题
ssl证书 域名绑定 自有域名
0 0
+关注
鸣镝
Alibaba Cloud OSS SDK/Tools Developer
文章
问答
来源圈子
更多
阿里云存储基于飞天盘古2.0分布式存储系统,产品包括对象存储OSS、块存储Block Storage、共享文件存储NAS、表格存储、日志存储与分析、归档存储及混合云存储等,充分满足用户数据存储和迁移上云需求,连续三年跻身全球云存储魔力象限四强。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
阿里云 JindoFS+OSS 数据上云实战
立即下载
百问百答-OSS (上)
立即下载
百问百答-OSS (下)
立即下载