从Chrome上的S3的交叉原始请求中缺少Origin头

Eva*_*van 7 google-chrome access-control request amazon-s3 cors

我正在尝试从s3存储桶加载资产(字体).Firefox和IE上的字体需要在响应中返回Access-Control-Allow-Origin标头.不幸的是,Chrome似乎没有发送"Origin"请求标头.由于它没有发送Origin请求头,因此S3的CORS策略不返回所需的Access-Control-Allow-Origin头.

以下是从Chrome检查器面板截取的示例请求:

为什么Requset标题中没有"Origin"标题?!

在此输入图像描述

发出此字体请求的页面位于https://proximate.com并托管在Heroku上.

San*_*dev 0

在发出GET字体请求之前,Chrome 会发送OPTIONS对字体资源的预检请求。Chrome 正是在此预检请求中发送了Origin标头。S3 的 CORS 策略将返回所需的Access-Control-Allow-Origin标头以响应此预检OPTIONS请求。
此后,Chrome 会发出对该字体的 GET 请求 - 您在屏幕截图中显示的请求。Chrome 现在不会发送OriginGET请求中的标头。如屏幕截图所示,请求成功(状态代码 200 OK)。另请注意响应中出现的Amazon 标头(以 开头x-amz-) 。您的网站https://proximate.com 似乎确实会从 Amazon S3 收到字体。难道不是这样吗?Server: AmazonS3


有关更多详细信息,请参阅链接https://spring.io/understanding/CORShttps://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html