最新的Chrome(46.0.2490.7)无法从S3存储桶通过https CORS加载字体

Mat*_*son 6 google-chrome amazon-s3 amazon-web-services cors aws-sdk

更新:看起来像Chrome中的错误:https://code.google.com/p/chromium/issues/detail? id = 544487

我们已经有一个网站运行了几年,在S3上托管了字体.它不是S3网站,它是私有CDN,我们使用经过S3身份验证的URL加载字体.

随着Chrome的最新更新,由于CORS问题,这已停止工作.

S3配置为这样的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>
Run Code Online (Sandbox Code Playgroud)

这一直有效,直到chrome 46.0.2490.7(2天前发布).它现在出错:

Font from origin 'https://domain.s3-eu-west-1.amazonaws.com' has been blocked from loading by Cross-Origin Resource Sharing policy: A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true. Origin 'https://domain.co.uk' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)

听起来Chrome本身正在添加Credentials Flag?我从8月份发现了这张机票https://code.google.com/p/chromium/issues/detail?id=516192听起来像是在https相同的域请求上强制执行了凭据标志,但这是一个CORS https请求,所以它不应该添加它?

此外,即使我删除*并添加域以查看是否修复它,它然后说没有Access-Control-Allow-Origin设置值,但事实并非如此.

任何人都知道这是怎么回事,我错过了什么吗?

Mat*_*son 2

到目前为止,我发现的唯一解决方法是通过同一域服务器代理字体。不理想。

我开了一张票:https://code.google.com/p/chromium/issues/detail?id=544879