设置跨域规则后调用OSS时仍然报“No 'Access-Control-Allow-Origin'”的错误

设置跨域规则后调用OSS时仍然报“No 'Access-Control-Allow-Origin'”的错误

更新时间:2020-07-30 11:35:12

问题描述

在OSS控制台设置了跨域CORS规则后,通过JS程序调用时仍然报如下错误。

No 'Access-Control-Allow-Origin' header is present on the requested resource

问题原因

问题原因可能如下:

  • 跨域CORS规则设置异常
    未正确设置CORS规则。
  • 浏览器缓存
    设置了CORS跨域规则,但是存在浏览器缓存,导致读取了缓存中未含有跨域头的Response Header。

解决方案

不同的问题原因对应的解决方法不同,建议先清除浏览器缓存进行测试。如果仍然报错,则参考如下步骤排查CORS跨域规则是否设置正确:

  1. 登录OSS控制台的Bucket列表。单击目标Bucket,进入Bucket概览页面。
  2. 在左侧导航栏中选择权限管理 > 跨域设置,然后单击设置
  3. 确保当前规则中的来源包含调用OSS的来源信息,并且允许MethodsGETPOSTHEAD。关于如何设置跨域规则,请参见设置跨域访问
  4. 如果当前跨域规则设置正确,报错仍然存在。则单击规则右侧的编辑按钮,检查 允许 Headers 设置。可将其设置为星号(*)并保存设置,测试问题是否解决。
    2

相关文档

适用于

  • 对象存储OSS

如果您的问题仍未解决,您可以在阿里云社区免费咨询,或提交工单联系阿里云技术支持。