我正在使用AWS S3,已经配置了我的Bucket来使用CORS:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
我正在客户端的React应用程序中从Bucket请求SVG图像。我内联渲染它们,因此响应需要启用CORS标头。有时它可以正常工作,有时则不行。我无法确定问题的具体原因。我可以成功检索一个图像。然后我上传了一张新的图像到Bucket,但是下载后,该图像却给我报错:
XMLHttpRequest cannot load https://s3.amazonaws.com/.../example.svg. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
我尝试添加<AllowedHeader>*</AllowedHeader>
和<ExposeHeader>ETAG</ExposeHeader>
,并在每次更改后清除缓存,但效果不佳。我感到困惑。为什么头信息没有传递过来?
Cache-Control: no-cache
。清除浏览器缓存并进行测试。尽管听起来很奇怪,但我相信这是我之前遇到的S3设计问题。 - Michael - sqlbot