问题描述
为了实现跨域访问,保证跨域数据传输的安全进行,在OSS控制台设置了跨域CORS规则后,通过SDK进行程序调用时报以下错误。
No 'Access-Control-Allow-Origin' header is present on the requested resource
问题原因
出现跨域问题的原因如下:
- 跨域CORS规则设置异常
未正确设置CORS规则。 - 浏览器缓存
设置了CORS跨域规则,但是存在浏览器缓存,导致读取了缓存中未含有跨域头的Response Header。
解决方案
不同的问题原因对应的解决方法不同,建议先清除浏览器缓存进行测试。如果仍然报错,请参见以下步骤排查CORS跨域规则是否设置正确:
- 登录OSS管理控制台。
- 单击Bucket列表,单击目标Bucket,进入Bucket概览页面。
- 在左侧导航栏中选择权限管理>跨域设置,然后单击设置。