OSS 访问图片资源报“No ‘Access-Control-Allow-Origin‘”的错误

Posted 张志翔ۤ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OSS 访问图片资源报“No ‘Access-Control-Allow-Origin‘”的错误相关的知识,希望对你有一定的参考价值。

问题描述

为了实现跨域访问,保证跨域数据传输的安全进行,在OSS控制台设置了跨域CORS规则后,通过SDK进行程序调用时报以下错误。

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

问题原因

出现跨域问题的原因如下:

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

解决方案

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

  1. 登录OSS管理控制台
  2. 单击Bucket列表,单击目标Bucket,进入Bucket概览页面。
  3. 在左侧导航栏中选择权限管理>跨域设置,然后单击设置

  4. 来源设置为*允许Methods全部勾选,允许Headers设置为*暴露Headers设置为Etagx-oss-request-id,缓存时间设置为0,选中返回Vary: Origin。关于如何设置跨域规则,请参见设置跨域访问
    注意:选中 返回Vary: Origin以避免本地缓存错乱,可能会造成浏览器访问次数或者CDN回源次数增加。

        到此问题解决。

以上是关于OSS 访问图片资源报“No ‘Access-Control-Allow-Origin‘”的错误的主要内容,如果未能解决你的问题,请参考以下文章

解决:阿里云 OSS 存储访问报错 AccessDenied

阿里云OSS上传报错:InvalidAccessKeyIdError

The difference between the request time and the current time is too large.阿里云oss上传图片报错

OSS  上传图片错误码 403

oss图片上传失败

用CDN加速OSS源站的操作步骤详解