Chrome S3 Cloudfront:初始XHR请求中没有“ Access-Control-Allow-Origin”标头
我有一个网页(https://smartystreets.com/contact),该网页使用jQuery通过CloudFront CDN从S3加载一些SVG文件。 在Chrome浏览器中,我将打开隐身窗口和控制台。然后,我将加载页面。当页面加载时,我通常会在控制台中收到6到8条类似于以下内容的消息: XMLHttpRequest cannot load https://d79i1fxsrar4t.cloudfront.net/assets/img/feature-icons/documentation.08e71af6.svg. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://smartystreets.com' is therefore not allowed access. 如果我对页面进行标准重新加载,即使是多次加载,也会继续遇到相同的错误。如果执行Command+Shift+R此操作,则将加载大多数(有时是全部)图像而不会出现XMLHttpRequest错误。 有时即使在图像加载后,我也会刷新,并且其中一幅或多幅图像将无法加载,并XMLHttpRequest再次返回该错误。 我已经检查,更改并重新检查了S3和Cloudfront上的设置。在S3中,我的CORS配置如下所示: <?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedOrigin>http://*</AllowedOrigin> <AllowedOrigin>https://*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <AllowedHeader>Authorization</AllowedHeader> </CORSRule> </CORSConfiguration> (注意:最初只有<AllowedOrigin>*</AllowedOrigin>,有同样的问题。) 在CloudFront中,分发行为设置为允许HTTP方法:GET, HEAD, OPTIONS。缓存的方法是相同的。转发标题设置为“白名单”,该白名单包括“访问控制请求头,访问控制请求方法,来源”。 它在无缓存浏览器重新加载后可以工作的事实似乎表明,S3 / CloudFront方面一切正常,否则为什么要交付内容。但是,为什么不能在初始页面浏览中传递内容? 我正在macOS上使用Google Chrome浏览器。Firefox每次都获取文件没有问题。Opera从不获取文件。Safari会在几次刷新后拾取图像。 使用curl我没有任何问题: …