【发布时间】:2017-12-06 01:31:13
【问题描述】:
我在从 S3 加载资产时遇到了一个奇怪的问题。我有一个从 S3 提供的样式表,并且似乎加载没有问题,但我仍然在控制台中收到 No 'Access-Control-Allow-Origin' header is present on the requested resource. 错误。资产是公开的,这是我存储桶上的 CORS 配置
<CORSRule>
<AllowedOrigin>MYDOMAINHERE</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
同样,样式都在加载,一切似乎都很好,但我只是想弄清楚为什么它仍然会抛出该错误并希望尽可能消除它。谢谢!
【问题讨论】:
-
<AllowedOrigin>的值必须以http://或https://开头。你有吗,它是否与你网站的操作模式(http/https)相匹配? -
是的,对不起,应该指定的。我有两个
<AllowedOrigin>规范 - 一个用于 http,一个用于 https。 MYDOMAINHERE 只是一个占位符。 -
这可能只是由于浏览器缓存了该样式表并继续从其缓存中提供它。因此,也许可以尝试在浏览器中强制重新加载样式表 URL,以让浏览器通过网络重新加载它,而不是从其缓存副本中重新加载。如果这不能解决它,我猜你也有可能在它们之间有一些网络缓存/代理仍然在提供一个陈旧的副本。但如果是这样,不知道如何建议解决这个问题……
-
向我们展示捕获的请求和响应标头? S3 中的 CORS 处理存在问题,这可能有助于 @sideshowbarker 提出的建议。
-
@sideshowbarker michael-sqlbot 我认为这正是问题所在。该错误似乎在某些页面(如主页)上消失了,因此服务器一定是在缓存旧版本。我猜只是一个等待的游戏!如果你们中的任何一个想回答,我可以将其标记为正确!