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

时间:2013-05-28 17:09:17

标签: google-chrome amazon-s3 request cors access-control

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

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

为什么Requset标题中没有“Origin”标题?

enter image description here

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

1 个答案:

答案 0 :(得分:0)

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

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

相关问题