问题描述
在OSS控制台设置了跨域CORS规则后,通过JS程序调用时仍然报如下错误。
No 'Access-Control-Allow-Origin' header is present on the requested resource
问题原因
问题原因可能如下。
跨域CORS规则设置异常:未正确设置CORS规则。
浏览器缓存:设置了CORS跨域规则,但是存在浏览器缓存,导致读取了缓存中未含有跨域头的Response Header。
解决方案
不同的问题原因对应的解决方法不同,建议先清除浏览器缓存进行测试。如果仍然报错,则参考如下步骤排查CORS跨域规则是否设置正确。
登录OSS控制台。找到目标Bucket,单击 基础设置。
在基础设置中找到 跨域设置,并单击 设置。
确认跨域CORS规则中的 来源 和 允许 Methods 设置正确,其中 允许 Methods 为“GET”、“POST”和“HEAD”,显示类似如下。
如果上一步设置正确,则单击规则右侧的 编辑 按钮,检查 允许 Headers 设置。可将其设置为星号(*)并保存设置,测试问题是否解决。